HTTP简要通信过程中的数据包传递

Part 1 HTTP简要通信过程

HTTP通信可概括为:

浏览器→ 建立连接→发送请求数据→ web server→ 返回响应数据包→ 浏览器→ 关闭连接

浏览器请求(Request)数据包,web server接收请求后作出响应(Response),发送返回数据包,浏览器接收返回数据包。浏览器与web server中间可以添加代理(Proxy)。

代理(Proxy)在HTTP通信中对与数据包传递的作用是:添加在浏览器和web server中间,可对二者间传递的数据包进行拦截、查看、修改操作。

添加代理后,HTTP简要通信过程为:

浏览器发送请求数据包后首先到达代理服务器,代理服务器再发送给web server,同样,web server响应的返回数据包也首先到达代理服务器,再发送到浏览器。这样通过代理服务器,可以对通信过程中的数据包进行更多的操作。

HTTP通信中主要包含两种数据包:请求数据包和返回数据包

Part 2 Request请求数据包和Response返回数据包格式

一、Request请求数据包格式

请求数据包分为四部分:请求行、请求头、空行和请求体。接下来分别对这四个部分进行介绍。

1.请求行:由三个标记组成(请求方法、请求URL和HTTP版本),包含内容为请求类型、请求资源路径,协议的版本和类型,具体表达是三个标记。

(1)HTTP:规划了8种可能的请求方法。

(2)GET:检索URL中标识资源的一个简单请求。

(3)HEAD:与GET方法相同,服务器只返回状态行和头标,并不返回请求文档。

(4)POST:服务器接受被写入客户端输出流中的数据的请求

(5)PUT:服务器保存请求数据作为制定URL新内容的请求。

(6)DELETE:服务器删除URL中命令的资源的请求。

(7)OPTIONS:关于服务器支持的请求方法信息的请求。

(8)TRACE:web服务器反馈HTTP请求和其头标的请求

(9)CONNECT:已文档化,但当前未实现的一个方法,预留做隧道处理。

2.请求头:由关键字或值对组成,每行一对,关键字和值用冒号分开,请求头标通知服务器腾于客户端的功能和标识。

(1)HOST:主机或域名地址。

(2)ACCEPT:指浏览器和其他客户可以接收的MIME文件格式。

(3)User-Agent:客户浏览器的名称。

(4)connection:用来告诉服务器是否可以维持固定的HTTP连接。

(5)Cookie:向服务器发送Cookie(小型数据体)。

(6)Referer:表明产生请求的网页URL。

3.空行:请求头与请求体间用一个空行隔开。

4.请求体:要发送的数据。

二、Response返回数据包格式

返回数据包包括四部分:状态行、响应头标、空行和响应体。接下来分别对这四个部分进行介绍。

1.状态行:协议版本、数字形式的状态代码和状态描述。各元素间以空格分隔。

HTTP响应码: 1XX——信息、请求收到、继续处理

2XX——成功,行为成功地被接受、理解和采纳。

3XX——重定向,为了完成请求,必须进一步执行的动作。

4XX——客户端错误。

5XX——服务器错误。

2.响应头标:包含服务器类型、日期、长度、内容类型等。

3.空行:响应头+空行+响应体,即响应头与响应体间以空行隔开。

4.响应体:浏览器会将实体内容中的数据取出来,生成相应的页面。

经验分享 程序员 微信小程序 职场和发展