JavaEE必知必会第四讲(下)-http协议

JavaEE必知必会第四讲之http协议

4.1 http协议概述

超文本传输协议简称http(HyperText Transfer Protocol) web浏览器与web服务器之间一问一答的交互过程,必须遵循一定的规则,这个规则就是http协议,用于定义web浏览器与web服务器交换数据的过程,以及数据本身的格式

一般,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其它信息

4.2 http协议原理

1.客户端连接到web服务器
通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.baidu.com
2.发送http请求
通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成
3.服务器接受请求并返回HTTP响应
Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。
4.释放连接TCP连接
若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;
5. 客户端浏览器解析HTML内容
客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。
JavaEE必知必会第四讲(下)-http协议
HTTP协议本身不具备保存之前发送过的请求或响应的功能,即无状态保存

4.3 http1.0 http1.1规范

1.http1.0版本(很早之前的规范了)
特点:每次请求之间都要建立一次连接,响应完还要关闭连接
这也是它的缺点,很繁琐吧,而且开销大
2.http1.1版本
特点:1.在一次连接上可以传输多个请求
2.多个请求和响应的过程可以叠加进行
3.增加了更多的请求头和响应头

4.4 URL

url:统一资源定位系统

一般来说用户只要输入统一资源定位符的一部分即可访问

JavaEE必知必会第四讲(下)-http协议
如上图的网址包含以下信息:
协议:https
服务器:baike.baidu.com
路径:/item/安徽信息工程学院/18627375
查询:?fr=aladdin

4.5 http请求格式与请求报文

JavaEE必知必会第四讲(下)-http协议
JavaEE必知必会第四讲(下)-http协议

4.6 http响应格式与响应报文

JavaEE必知必会第四讲(下)-http协议
JavaEE必知必会第四讲(下)-http协议
如果你使用的是火狐浏览器,你可以安装插件firebug,来观察请求报文和响应报文的具体过程,
如果你使用的是谷歌浏览器,那么太棒了,谷歌适配了丰富的开发者模式,谷歌浏览器如何查看http协议报文信息
JavaEE必知必会第四讲(下)-http协议