HTTP报文是HTTP协议交互时所规定请求和响应的规则。请求端(客户端)向响应端(服务器端)请求的发送的信息叫做请求报文,响应端(服务器端)反馈请求端(客户端)的叫做响应报文。
请求报文的格式由请求行+请求头+空行+请求体构成。
请求行: 请求方法 + 请求URL+ Http协议版本
请求方法: 常见的HTTP请求方法有GET和POST方法,还有DELETE、HEAD、OPTIONS、PUT、TRACE请求方法
请求行例如:
POST /s?ie=utf-8 HTTP/1.1
请求头:
常见的请求头:
User-Agent
:浏览器类型Accept
:客户端可识别的响应内容类型列表。Accept-Language
:客户端可接收的自然语言。Accept-Encoding
:客户端可接收的编码压缩格式。Accept-Charset
:可接收的应答的字符集。Host
:请求的主机名,允许多个域名同处一个IP 地址,即虚拟主机。onnection
:连接方式(close 或keepalive)。Cookie
:存储于客户端扩展字段,向同一域名的服务器端发送属于该域的cookiecontent-type
:响应类型Host: baidu.com
Cookie: name=stduy
Content-type: application/x-www-form-urlencode
User-Agent: chrome 83
空行: 空行必须有
请求体:
get
方式的请求体为空post
方式的请求体可以不为空,如下username=admin&password=admin
响应报文的格式也是由响应行+响应头+空行+响应体构成。
响应行: 报文协议及版本 + 状态码以及状态描述
HTTP/1.1 200 OK
常见的HTTP状态码:
200 - 请求成功
301 - 资源(网页等)被永久转移到其它URL
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
分类 | 分类描述 |
---|---|
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
状态码 | 状态码英文名称 | 中文描述 |
---|---|---|
100 | Continue | 继续。客户端应继续其请求 |
101 | Switching Protocols | 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到HTTP的新版本协议 |
200 | OK | 请求成功。 一般用于GET与POST请求 |
301 | Moved Permanently | 永久移动。 |
404 | Not Found | 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置”您所请求的资源无法找到”的个性页面 |
500 | Internal Server Error | 服务器内部错误,无法完成请求 |
响应头:
Content-Type: text/html;charset=utf-8
Content-length: 2048
空行: 空行必须有
响应体: 响应体会以HTML形式返回
<html>
<head>head>
<body>
<h1>Helloh1>
body>
html>
第一步: 在浏览器中打开开发者模式,搜索。
Header:
点击Request Headers 查看请求头 点击View parsed查看完整的请求头
下面是get请求的请求头截图