一次完整的HTTP请求所经历的7个步骤

本文详细阐述了一次完整HTTP通信过程的7个步骤,包括TCP连接建立、发送请求命令和头信息、服务器应答、发送数据及关闭连接。重点讨论了HTTP请求信息的组成部分:请求方法、URI、协议/版本、请求头以及请求正文,并举例说明了POST请求的数据包内容和常见的HTTP状态码及其含义。
摘要由CSDN通过智能技术生成

HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:

1. 建立TCP连接
在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能进行更高层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。

2. Web浏览器向Web服务器发送请求命令 
一旦建立了TCP连接,Web浏览器就会向Web服务器发送请求命令。例如:GET/sample/hello.jsp HTTP/1.1。

3. Web浏览器发送请求头信息 
浏览器发送其请求命令之后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送了一空白行来通知服务器,它已经结束了该头信息的发送。

4. Web服务器应答 
客户机向服务器发出请求后,服务器会客户机回送应答, HTTP/1.1 200 OK ,应答的第一部分是协议的版本号和应答状态码。

5. Web服务器发送应答头信息 
正如客户端会随同请求发送关于自身的信息一样,服务器也会随同应答向用户发送关于它自己的数据及被请求的文档。

6. Web服务器向浏览器发送数据 
Web服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。

7. Web服务器关闭TCP连接 
一般情况下,一旦Web服务器向浏览器发送了请求数据,它就要关闭TCP连接,然后如果浏览器或者服务器在其头信息加入了这行代码:Connection:keep-alive

TCP连接在发送后将仍然保持打开状态,于是,浏览器可以继续通过相同的连接发送请求。保持连接节省了为每个请求建立新连接所需的时间,还节约了网络带宽。

 

 

TCP通过三次握手建立可靠连接,此篇文章对此不做多赘述,这里主要简单讲讲客户端在发起HTTP请求的时候,发送的数据包里面有什么数据,以及请求成功接收WEB服务器的数据包;

这里通过Fiddler工具抓取手机APP向WEB服务器发送的数据包:

 

技术分享

HTTP请求为http://xg.mediportal.com.cn/health/sms/verify/telephone

当浏览器向Web服务器发出请求时,它向服务器传递了一个数据块,也就是请求信息,

 

 

HTTP请求信息由3部分组成

1、请求方法(GET/POST)、URI、协议/版本

2、请求头(Request Header)

3、请求正文

 

以上图做例进行分析:

POST http://xg.mediportal.com.cn/health/sms/verify/telephone HTTP/1.1

 

User-Agent: DGroupPatient/1.052701.230/Dalvik/2.1.0 (Linux; U; Android 5.1.1; KIW-AL10 Build/HONORKIW-AL10)
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Host: xg.mediportal.com.cn
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 33

telephone=15527177736&userType=1&

 

1)请求方法、URI、协议/版本

 

请求的第一行是“方法、URL、协议/版本”:

POST http://xg.mediportal.com.cn/health/sms/verify/telephone HTTP/1.1

以上代码中“POST”代表请求方法,“http://xg.mediportal.com.cn/health/sms/verify/telephone”表示URI,“HTTP/1.1代表协议和协议的版本。

根据HTTP标准,HTTP请求可以使用多种请求方法。例如:HTTP1.1目前支持7种请求方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值