HTTP协议详解1
HTTP协议是一种无状态的协议,无状态是指web浏览器与web服务器之间不需要建立持久的连接,每当客户端发出请求(request),然后web服务返回响应(response),连接就关闭了,服务端不保留连接的有关信息,且HTTP协议只能由客户端发起,而服务器不能主动向客户端发送数据。
HTTP协议遵循 请求(request)/应答(response)模型
HTTP协议的请求与响应:
1、http请求
http请求包括三部分,请求行(请求方法)、请求头(消息报头)和请求正文
POST /login.php HTTP/1.1 //请求行
HOST: www.xxser.com //请求头
User-Agent: Mozilla/5.0(Windows NT 6.1;rv:15.0) Gecko /20100101 Firefox/15.0
//空白行,代表请求头结束
Username=admin&password=admin //请求正文
请求行:
第一部分使POST请求
第二部分是一个斜杠(/login.php),说明请求使该域名根目录下的login.php;
最后一部分说名使用的是HTTP 1.1版本(另一个可选项是1.0)
请求头:
第二行至空白行(也被称为 消息头)
HOST代表请求主机地址
User-Agent 代表客户端设备和浏览器的标识
请求头由客户端自行设定
HTTP请求的最后一行为正文,请求正文是可选的,他最常出现在POST请求方法中
2、HTTP响应
HTTP响应也是由三部分内容组成,分别是响应行、响应头和响应正文
HTTP/1.1 200 OK //响应行
Bdpagetype: 1
Bdqid: 0xa127e5260019c12a
Cache-Control: private
Content-Type: text/html
Cxy_all: monline_6_dg+378acd7098ed59d37c7a53d22dd1b971
Date: Wed, 17 Jul 2019 06:21:33 GMT //响应头
Expires: Wed, 17 Jul 2019 06:21:33 GMT
Server: BWS/1.1
Set-Cookie: delPer=0; path=/; domain=.baidu.com
Set-Cookie: BDSVRTM=12; path=/
Set-Cookie: BD_HOME=0; path=/
Set-Cookie: H_PS_PSSID=1436_21105_29522_29519_28518_29098_28837_29220_22157; path=/; domain=.baidu.com
Strict-Transport-Security: max-age=172800
Vary: Accept-Encoding
X-Ua-Compatible: IE=Edge,chrome=1
Connection: close
Content-Length: 157366
<!DOCTYPE html> //响应正文或者叫消息主题
<!--STATUS OK-->
............
第一行为响应行,其中HTTP版本(HTTP/1.1)、状态码(200)以及消息(OK)
第二行至末尾的空白行为 响应头,由服务器向客户端发送
消息报头之后是响应正文,是服务器向客户端发送的HTML数据