网络编程基础-Http通信协议请求头详解-留作复习-延伸思考tcp三次握手四次挥手

---------------------------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

 

响应体

 

 

 

 

 

 

发布了21 篇原创文章 · 获赞 2 · 访问量 4141

猜你喜欢

转载自blog.csdn.net/yuezhilangniao/article/details/104159091