Java基础之Web服务器与Http详解

目录
  • Web服务器
    • 技术讲解
    • PHP:
    • JSP/Servlet
    • Web服务器
      • IIS
      • Tomcat
      • JAVA jdk中的内容
    • Tomcat
      • Tomcat根目录下的内容
      • Tomcat的配置
  • Http
    • 1、什么是Http
    • 2、两个时代
    • 3、Http请求
    • 4、 Http响应

Web服务器

技术讲解

  • 微软:国内最早流行的就是ASP
  • 在HTML中嵌入了VB的脚本,ASP+COM
  • 在ASP开放中,基本一个页面都有几千行的业务代码,页面极其混乱
  • 维护成本高

PHP:

  • PHP开发速度很快,功能很强大,跨平台,代码很简单
  • 局限性:无法承载大访问量的情况

JSP/Servlet

B/S:浏览器和服务器

C/S:客户端和服务器

  • sun公司主推的B/S架构
  • 基于java语言的(所有的大公司,或者一些开源的组件,都是用java写的)
  • 可以承载三高问题带来的影响
  • 语法像ASP,ASP–>JSP,加强了市场强度

Web服务器

服务器是一种被动的操作,用来处理用户的一些轻球和用户的一些响应信息。

IIS

微软的;ASP…,Windows中自带的

Tomcat

Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,最新的Servlet和JSP规范总是能在Tomcat中得到体现,因为Tomcat技术先进、性能稳定,而且免费,因而深受java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。对于一个Java出血web的人来说,它是最佳的选择。

Tomcat实际上运行JSP页面和Servlet。Tomcat最新版本为9.0

JAVA jdk中的内容

jdk

bin-执行文件

include-包括了很多c++写的底层

jre

lib里面有很多jar包

java的核心jar包为rt.jar

Tomcat

Tomcat根目录下的内容

bin-启动,关闭的脚本文件

conf-配置文件

lib-依赖的jar包

logs-日志

webapps:发布的网站

Tomcat的配置

这个核心配置文件可以配置许多参数

配置启动的端口号

  • Tomcat的默认端口号为:8080
  • mysql:3306
  • http:80
  • https:443
  • 修改如下
<Connector port="8081" protocol="HTTP/1.1">
  				 connectionTimeout="20000"
  				 redirectPort="8443"/>

可以配置主机的名称

  • 默认的主机名为:localhost->127.0.0.1
  • 默认网站应用存放的位置为:webapps
  • 修改如下
<Host name="www.lengding.com" appBase="webapps"
      unpackWARs="true" autoDeploy="true"></Host>

谈谈网站是如何进行访问的

1.输入一个域名

2.检查本季的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名的映射

  • 有:直接返回对应的ip地址,这个地址中,有为们需要访问的web程序,可以直接访问
    127.0.0.1 www.lengding.com
    

  • 没有:去DNS服务器找,找到的话就返回,找不到就无法访问

  • 发布一个网站

将自己写的网站,放到服务器(Tomcat)中指定的web应用的文件夹(webapps)下,就可以访问了

网站应有的结构

--webapps:Tocat服务器的web目录
	--ROOT
	-lengding:网站的目录名
		-WEB-INF
			-classes:java程序
			-lib:web应用所依赖的jar包
			-web.xml:网站配置文件
		-index.html 默认的首页
		-static
				-css
						-style.css
				-js
				-img

Http

1、什么是Http

Http是一个简单的请求-响应协议,它通常运行在TCP之上。

文本:html,字符串,~…

超文本:图片,音乐,视频,定位,地图…

端口:80

Https:安全的

443

2、两个时代

  • http1.0

HTTP/1.0:客户端可以与web服务器连接,连接后只能获得一个web资源。

  • http2.0

HTTP/1.1:客户端可以与web服务器连接,连接后可以获得多个web资源。

3、Http请求

客户端—发送请求(Request)—服务器

Request URL:https://www.baidu.com/ 请求地址
Request Method:GET get方法/post方法
Status Code:200 OK 状态码:200
Remote(远程) Address:14.215.177.39:443
Accept:text/html
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9 语言
Cache-Control:max-age=0
Connection:keep-alive

请求行

请求行中的请求方式:GET

请求方式,Get,Post,HEAD,DELETE,PUT,TRACT…

  • get:请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容,不安全,但高效
  • post:请求能够携带的参数没有限制,大小没有限制,不会在浏览器的URL地址栏显示数据内容,安全,但不高效(现在可以忽略不计)

消息头

Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.

4、 Http响应

  • 服务器—响应—客户端
Cache-Control:private 缓存控制
Connection:Keep-Alive 连接
Content-Encoding:gzip 编码
Content-Type:text/html 类型
  • 响应体
Accept:告诉浏览器,它所支持的数据类型
Accept-Encoding:支持哪种编码格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
HOST:主机..../.
Refresh:告诉客户端,多久刷新一次;
Location:让网页重新定位;
  • 响应状态码

200:请求响应成功

3xx:请求重定向

  • 重定向:你重新到我给你新的位置去

4xx:找不到资源 404

  • 资源不存在

5xx:服务器代码错误

  • 500
  • 502:网关错误

问题:当你的浏览器中的地址栏输入地址并回车的一瞬间到页面能够展示出来,经历了什么?

到此这篇关于Java基础之Web服务器与Http详解的文章就介绍到这了,更多相关Java Web服务器与http内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • JavaWeb入门:HttpResponse和HttpRequest详解

    目录 HttpResponse 讲解 HttpServletResponse概述: Response运行流程 设置响应行 设置响应头 一个小demo 实现刷新 页面累加 设置字符编码 解决中文乱码问题 重定向 redirect request转发 重定向和转发的区别 文件下载 HttpRequest 讲解 HttpServletRequest概述 Request 运行流程 获取请求携带的参数 获取多个参数的值 获得请求行的信息 request实现转发 request是一个域对象 ServletC

  • Java 内置Http Server构建web应用案例详解

    一.概述 使用Java技术构建Web应用时, 我们通常离不开tomcat和jetty之类的servlet容器,这些Web服务器功能强大,性能强劲,深受欢迎,是运行大型Web应用的必备神器. 虽然Java的设计初衷就是用来开发大型应用的,然而有时候我们开发的程序只是简单的小型应用,对于功能的需求和性能的要求并不高, 可能仅仅就几百行甚至几十行代码,这个时候使用tomcat之类的Web服务器去运行就显得有点大材小用了. 比如说只是将数据库中的数据读出来转换成JSON,以Web服务的形式吐给调用方这样

  • javaweb中Http协议详解

    一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程.客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式. 二.HTTP协议的版本 HTTP协议的版本:HTTP/1.0.HTTP/1.1 三.HTTP1.0和HTTP1.1的区别 在HTTP1.0协议中,客户端

  • Java基础之Web服务器与Http详解

    目录 Web服务器 技术讲解 PHP: JSP/Servlet Web服务器 IIS Tomcat JAVA jdk中的内容 Tomcat Tomcat根目录下的内容 Tomcat的配置 Http 1.什么是Http 2.两个时代 3.Http请求 4. Http响应 Web服务器 技术讲解 微软:国内最早流行的就是ASP 在HTML中嵌入了VB的脚本,ASP+COM 在ASP开放中,基本一个页面都有几千行的业务代码,页面极其混乱 维护成本高 PHP: PHP开发速度很快,功能很强大,跨平台,代

  • java基础(System.err和System.out)详解

    今天有位同事在使用System.err和System.out遇上了一些小问题. 看了些资料总结下: 1.JDK文档对两者的解释: out:"标准"输出流.此流已打开并准备接受输出数据.通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标. err:"标准"错误输出流.此流已打开并准备接受输出数据.通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标.按照惯例,此输出流用于显示错误消息,或者显示那些即使用户输出流(变量 out 的值)已经重

  • Java基础之FileInputStream和FileOutputStream流详解

    一.前言 FileInputStream 用于读取本地文件中的字节数据,继承InputStream类 FileOutputStream 将字节数据写到文件,继承OutputStream类 二.创建流对象 FileInputStream fis= new FileInputStream("绝对路径"); FileOutputStream fos= new FileOutputStream("绝对路径"); 三.FileInputStream常用方法 1.构造函数,打开

  • Java基础之枚举Enum类案例详解

    一.文章序言 Java中引用类型:数组.类.接口.枚举.注解 枚举这个既熟悉又陌生的东西具体再哪里可以使用呢? 什么是枚举? 枚举是一个引用类型,枚举就是一个规定了取值范围的变量类型. 枚举变量不能使用其他的数据,只能使用枚举中常量赋值.提高程序安全性: //格式: public enum 枚举名{ //枚举的取值范围 //枚举中可以生命方法 } 枚举的使用场景介绍? 1.最常见的情况如星期,相关变量我们会在Java里面重复使用,在这里我们就可以来定义一个叫做"星期"的枚举. publ

  • Java基础语法之二维数组详解

    一.二维数组 进入正题之前.首先为了便于大家理解,我画了一个图: xx枪战游戏中, 我是一个刚刚注册账号的小白,系统送了我两把枪,此时,我的武器库只有这么一层(可以理解为一位数组,枪就是对应的数组中对应的元素) 经过艰苦卓绝的战斗,终于有了一笔钱,现在我打算配置好的游戏装备,我现在有了一个枪柜,它可以存放三层的枪械,每一层都可以放多把武器(这个就是二维数组,有多层,每层都是一个一维数组) 随着游戏时长和我的高超技术,获取游戏装备的效率越来越高了,一个枪柜已经存不下了,于是,我就有了多个枪柜(这个

  • Java基础之内存泄漏与溢出详解

    一.浅析 内存泄露( memory leak):是指程序在申请内存后,无法释放已申请的内存空间,多次内存泄露堆积后果很严重,内存迟早会被占光.内存泄漏最终会造成内存溢出. 内存溢出(out of memory) :是指程序在申请内存时,没有足够的内存空间供其使用 JVM中有一下几种内存空间: 栈内存(Stack):每个线程私有的. 堆内存(Heap):所有线程公用的. 方法区(Method Area):有点像以前常说的"进程代码段",这里面存放了每个加载类的反射信息.类函数的代码.编译

  • Java基础类库之StringBuffer类用法详解

    StringBuffer类 String类是在所有开发项目开发之中一定会使用的一个功能类,并且这个类拥有如下功能 每个字符串的常量都属于一个String类匿名对象,并且不能修改: String类有两个常量池:静态常量池.运行常量池: String类对象实例化建议直接使用赋值的形式完成,这样可以直接将对象保存在对象池中方便下次重用: 虽然String类很好用,但是我们发现它也有弊端,就是内容不允许频繁修改,所以为了解决问题,我们提供了StringBuffer类 StringBuffer 并不像St

  • Java基础篇之反射机制示例详解

    目录 一.什么是反射: 二.反射的原理: 三.反射的优缺点: 四.反射的用途: 五.反射机制常用的类: 六.反射的基本使用: 1.获得Class:主要有三种方法: 2.判断是否为某个类的示例: 3.创建实例:通过反射来生成对象主要有两种方法: 4.通过反射获取构造方法并使用: 5.获取成员变量并调用: 6.获取成员方法并调用: 7.反射main方法: 8.利用反射创建数值: 9.反射方法的其他使用--通过反射运行配置文件内容: 10.反射方法的其他使用--通过反射越过泛型检查: 总结 一.什么是

  • JAVA基础之继承(inheritance)详解

    继承(inheritance)是Java OOP中一个非常重要的概念.继承是在复用已存在的类的方法和域的基础上,还可以添加新的方法和域.Java用extends关键字来表示继承关系(is-a).被继承的类称为超类(superclass).基类(base class).父类(parent class),而新类被称为子类(subclass).派生类(derived class)或孩子类(child class). 1.class:编程语言中的基本单位.将数据和功能封装到了一起. 2.基类包含其所有导

  • Windows Server 2008 架设 Web 服务器教程(图文详解)

    一.安装 IIS 7.0 : 虽然 Windows Server 2008 内置了I IS 7.0,但是默认情况下并没有安装.由于 Windows Server 2008 中安装 IIS 服务和以前操作相比有很大的不同,因此首先要首先需要参照下述步骤安装 IIS 7.0 组件. 后来笔者又在 windows server 2012 上试了 iis,版本是 8,本文中也有截图提及. 1:开始 - 服务器管理器 - 角色 - 添加角色 : 2:勾选 Web服务器(IIS),接着可以查看到对 Web

随机推荐