---------------------------http 请求报文---------------------------
-----请求行----
GET / HTTP/1.1 # 请求方法 请求资源路径 http协议的版本
-----请求头-----
Host: www.baidu.com # 服务器的ip地址和端口号,如果不写默认使用80
Connection: keep-alive # 和服务端保持长连接, 长连接的好处是建立一次连接可以发送多次请求和多次响应,节省创建连接资源
Cache-Control: max-age=0 # 不缓存
Upgrade-Insecure-Requests: 1 # 让浏览器升级不安全请求,使用https请求
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10124) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 # 用户代理,其实就是客户端的名称, 后续讲爬虫的可以根据请求头进行反爬
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8 # 告诉服务端接受的数据类型
Accept-Encoding: gzip, deflate # 告诉服务端支持的压缩算法
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 # 告诉服务端支持的语言
----http get 请求原始报文的数据格式 -----------
-----请求行----
GET / HTTP/1.1\r\n # 请求方法 请求资源路径 http协议的版本
-----请求头-----
Host: www.baidu.com\r\n # 服务器的ip地址和端口号,如果不写默认使用80
Connection: keep-alive\r\n # 和服务端保持长连接, 长连接的好处是建立一次连接可以发送多次请求和多次响应,节省创建连接资源
Cache-Control: max-age=0\r\n # 不缓存
Upgrade-Insecure-Requests: 1\r\n # 让浏览器升级不安全请求,使用https请求
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10124) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36\r\n # 用户代理,其实就是客户端的名称, 后续讲爬虫的可以根据请求头进行反爬
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8\r\n # 告诉服务端接受的数据类型
Accept-Encoding: gzip, deflate\r\n # 告诉服务端支持的压缩算法
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8\r\n # 告诉服务端支持的语言
\r\n
get 请求报文数据格式:
请求行
请求头
\r\n(不能省略)
post 请求报文数据格式:
请求行
请求头
\r\n(不能省略)
请求体
--------------http响应报文-----------------
--- 响应行(状态行) -------
HTTP/1.1 200 OK # http协议的版本 状态码 状态描述[可选]
Server: Itcast/9.99.9 # 服务器名称
Date: Thu, 14 Feb 2019 03:00:00 GMT # 服务器的响应时间
Content-Type: text/html;charset=UTF-8 # 内容类型和编码格式
Transfer-Encoding: chunked # 服务端不确定发送数据的大小,发送数据接收的标识: '0\r\n', Content-Length: 100字节, 服务端确定发送数据的大小, 两者只能出现一个
Connection: keep-alive # 告诉客户端和客户端保持长连接
Vary: Accept-Encoding
X-Application-Context: application:production:6202 # 以上两个是自定义响应头信息, 响应头和请求头都可以有程序员自定义的头信息
Content-Language: zh-CN # 内容语言
Content-Encoding: gzip # 内容压缩算法
-----http的原始响应报文--------------------
--- 响应行(状态行) -------
HTTP/1.1 200 OK\r\n # http协议的版本 状态码 状态描述[可选]
--- 响应头-----------
Server: Itcast/9.99.9\r\n # 服务器名称
Date: Thu, 14 Feb 2019 03:00:00 GMT\r\n # 服务器的响应时间
Content-Type: text/html;charset=UTF-8\r\n # 内容类型和编码格式
Transfer-Encoding: chunked\r\n # 服务端不确定发送数据的大小,发送数据接收的标识: '0\r\n', Content-Length: 100字节, 服务端确定发送数据的大小, 两者只能出现一个
Connection: keep-alive\r\n # 告诉客户端和客户端保持长连接
Vary: Accept-Encoding\r\n
X-Application-Context: application:production:6202\r\n # 以上两个是自定义响应头信息, 响应头和请求头都可以有程序员自定义的头信息
Content-Language: zh-CN\r\n # 内容语言
Content-Encoding: gzip\r\n # 内容压缩算法
\r\n (不能省略)
-----响应体---------------
服务端根据请求发送给客户端的响应数据
----响应报文格式---
响应行
响应头
\r\n
响应体