两分钟了解HTTP请求报文和响应报文

本文详细介绍了HTTP请求报文的组成部分,包括请求行(请求方法、URL、协议版本)、请求头(如Accept、Referer等)和请求体。同时,解释了HTTP响应报文的结构,包括响应行(协议版本、状态码)、响应头和响应体,并列举了常见的HTTP状态码。此外,还讨论了若干重要的HTTP头部属性,如Cookie和Content-Type,以及它们在交互过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、HTTP请求报文

HTTP请求报文由3部分组成(请求行+请求头+请求体):

在这里插入图片描述
请求行:
①是请求方法,如GET和POST。
②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。
③是协议名称及版本号。

请求头:
④是HTTP的报文头,包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。与缓存相关的规则信息,均包含在header中

请求体:
⑤是报文体,它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。报文体可以传递请求参数,同样请求URL也可以通过类似于“/chapter15/user.html?param1=value1&param2=value2”的方式传递参数。

HTTP请求报文头属性说明:

Accept:
请求报文告诉服务端,客户端接受什么类型的响应。如Accept:text/plain报文头告诉服务端,客户端能够接受的响应类型仅为纯文本数据。

Referer:
表示这个请求是从哪个URL过来的。

Accept-Language:
告知服务器客户端能够处理的语言集(指中文或英文等),以及语言集的相对优先级。

User-Agent:
用户代理,告知服务器客户端浏览器的类型、版本等信息,以便服务器更好的提供服务。

Content-Type:
表明发送数据流的类型,服务器根据编码类型使用特定的解析方式获取数据。

Host:
用于区分同一IP上的不同虚拟主机。

Content-Length:
标识HTTP消息实体的传输长度,单位字节。

Connection:
用于管理持久连接,HTTP/1.1 版本的默认连接都是持久连接,想明确断开连接时,则指定Connection 的值为 Close。

Cache-Control:
缓存控制,比如是否需要缓存或要缓存多久等。

Cookie:
客户端Cookie通过这个报文头属性传给服务端。服务端如何确定客户端的多个请求隶属哪个Session?通过请求报文头Cookie属性的jsessionid的值来确定。(也可以通过重写URL将ID附带在URL的后面)。


二、HTTP响应报文

HTTP的响应报文也由三部分组成(响应行+响应头+响应体):

在这里插入图片描述
响应行:
①报文协议及版本;
②状态码及状态描述;

响应头:
③响应报文头,也是由多个属性组成;

响应体:
④响应报文体,真正需要的数据。

常见的状态码:
在这里插入图片描述
301:永久重定向;
302:临时重定向;
401:发送的请求要有http的验证信息;
402:请求报文中有语法错误;
403:无权访问;
404:没有对应的资源;
500:服务器执行请求时发生错误;
503:服务器停机或正在维护。

HTTP响应报文头一些属性说明
Server:
告知客户端当前服务器上安装的 HTTP 服务器应用程序的信息。

Transfer-Encoding:
规定了传输报文主体时采用的编码方式。HTTP/1.1 的传输编码方式仅对分块传输编码有效。

Date:
创建 HTTP 报文的日期和时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西瓜味儿的小志

您的支持是创作的最大动力^_^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值