363-HTTP报文
报文分为请求和响应两种
- 浏览器端想服务器端发送的就是请求报文
- 服务器端返回的是相应报文
响应:服务器端返回的数据
HTTP请求报文
get请求用于获取服务器端数据
post请求用于将数据发送到服务器端
GET请求报文
标头(请求头)
- HTTP请求:
- 请求网址:http://www.baidu.com/
- 请求方法:GET
- 状态代码:304 OK
- 远程地址:127.0.0.1
- 请求标头:HTTP请求头信息(隐藏携带)
- accept: text/html,.....(浏览器可以接收的文件类型)
- accept-encoding: gzip, deflate, br(浏览器可以接收的压缩方式)
- accept-language: zh-CN,zh;q=0.9(浏览器可以接收的语言)
- cache-control: max-age=0(浏览器可以接收的缓存控制)
- connection: keep-alive(浏览器可以接收的连接方式)
- cookie: (浏览器可以接收的cookie,用于保存用户信息)
- host: www.baidu.com(浏览器可以接收的host)
- user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36(浏览器可以接收的user-agent(浏览器信息))
GET请求报文格式
- 请求行:请求方法、请求网址、请求协议
- 请求头:请求头信息
- 空行:空行
例如:
---请求行---
GET/wp-content/uploads/2020/12/zm.svgHTTP/1.1#GET请求方式请求资源路径HTTP协议版本
---请求头---
Host: www.itcast.cnn#服务器的主机地址和端口号,默认是80
Connection:keep-alive#和服务端保持长连接
Upgrade-Insecure-Requests:1#让浏览器升级不安全请求,使用https请求
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac 0S X 10_12_4) AppleWebKit/537.36
(KHTML,1ikeGecko)Chrome/69.0.3497.100Safari/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#可接受的语言
Cookie:pgV_pvi=1246921728;#登录用户的身份标识
---空行---
POST请求报文
POST请求报文组成:
- 请求行:请求方法、请求网址(资源路径)、请求HTTP协议版本
- 请求头:请求头信息
- 空行:空行
- 请求体:请求体信息
post请求报文的栗子:
--- 请求行 ---
POST /wp-content/uploads/2020/12/zm.svg HTTP/1.1#POST请求方式请求资源路径HTTP协议版本
--- 请求头 ---
Host: www.itcast.cnn#服务器的主机地址和端口号,默认是80
Connection:keep-alive#和服务端保持长连接
Upgrade-Insecure-Requests:1#让浏览器升级不安全请求,使用https请求
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac 0S X 10_12_4) AppleWebKit/537.36
(KHTML,1ikeGecko)Chrome/69.0.3497.100Safari/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#可接受的语言
Cookie:pgV_pvi=1246921728;#登录用户的身份标识
--- 空行 ---
--- 请求体 --- (请求体是请求报文的一部分,用于发送数据到服务器端)
username=admin&password=123456#请求体信息
总结
- 一个HTTP请求可以由请求行、请求头、空行、请求体组成
- 请求行是由三部分组成:
- 请求方法:GET、POST
- 请求网址:http://www.baidu.com/
- 请求HTTP协议版本:HTTP/1.1
- GET方式的请求报文没有请求体,只有请求行和请求头和空行
- POST方式的请求报文有请求行、请求头、空行、请求体,当然允许没有请求体,只是很少见
HTTP响应报文
响应报文需要携带文本、图片、视频、音频等数据
所以在返回数据的时候就要把你的数据组装成一个响应报文
组成:
- 响应行(response line):响应状态码(404)、响应状态描述(OK/NOT FOUND)
- 响应头(response header):响应头信息
- server:apache # 服务器名称
- content-type:text/html;charset=utf-8 # 响应体数据类型
- 空行
- 响应体(response body):响应体信息
HTTP常见相应状态码
- 200:请求成功
- 301:永久重定向
- 302:临时重定向
- 400:请求错误
- 404:请求的资源不存在
- 500:服务器内部错误
- 502:网关错误
- 503:服务不可用
- 504:网关超时