打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
UC头条:HTTP报文结构
userphoto

2023.06.12 山西

关注

一、HTTP请求结构

HTTP请求结构可以分为请求行、请求头和请求体三部分。

请求行

请求行是HTTP请求报文中的第一行,指定了该请求使用的方法、URL和协议版本。请求行包含以下三个部分:

a.HTTP请求方法:指定客户端请求服务器所用的方法,常用的方法有GET、POST、PUT、DELETE、PATCH等。

b.请求的资源路径:指定了请求的资源路径。

c.HTTP协议版本:指定了HTTP协议的版本,如HTTP/1.1等。

例如,请求行可以是这样的:

POST/api/loginHTTP/1.1

请求头

请求头紧随请求行之后,是HTTP请求报文的一部分,包含了客户端向服务器端发送的元数据。请求头的格式是“键(Key)-值(Value)”对,中间用冒号(:)分隔,多个键值对之间使用回车换行符(CRLF)分隔,例如:

Accept-Language:en-US,en;q=0.9Host:www.example.com

常见的请求头有:

a.Accept:指定客户端可处理的媒体类型。

b.Content-Type:指定请求体中的媒体类型。

c.User-Agent:指定客户端的浏览器类型、操作系统和版本信息。

d.Referer:指定来源于哪个页面或网站发出的请求。

e.Authorization:为客户端发送身份验证信息。

请求体

请求体是HTTP请求报文的最后一部分,包含了客户端向服务器端发送的实体数据。单个请求可以不含有请求体。请求体的格式根据实际的需要选择。常用的请求体格式有:

a.application/x-www-form-urlencoded:以URL编码的方式发送表单数据。

b.application/json:发送JSON格式的数据。

c.multipart/form-data:用于发送文件和二进制数据。

d.text/plain:纯文本格式的数据。

例如:

二、HTTP响应结构

HTTP响应结构可以分为状态行、响应头和响应体三部分。

状态行

状态行是HTTP响应报文中的第一行,包含了HTTP协议版本、状态码和状态描述。状态行的格式如下:

HTTP/1.1200OK

状态码通常由三位数字组成,表示对请求的处理结果。常见的状态码有:

a.2XX(成功):表示服务器成功地接收到、理解并接受了客户端请求。

b.3XX(重定向):表示客户端需要执行一些额外的步骤,才能完成请求。

c.4XX(客户端错误):表示客户端发送的请求包含错误语法或无法完成请求。

d.5XX(服务器错误):表示服务器遇到错误,无法完成请求。

响应头

响应头紧随状态行之后,是HTTP响应报文的一部分,包含了服务器向客户端发送的元数据。响应头的格式和请求头相同,为键值对的形式,例如:

Content-Type:application/jsonCache-Control:max-age=3600

常见的响应头有:

a.Content-Type:指定响应体的媒体类型。

b.Content-Length:指定响应体的长度。

c.Cache-Control:指定缓存控制策略。

d.Date:指定响应的日期时间。

e.Server:指定服务器的名称和版本信息。

响应体

响应体是HTTP响应报文的最后一部分,包含了服务器向客户端返回的实体数据。响应体格式根据实际需要而定,如HTML、JSON、XML、图片、视频等。

例如:

HTTP协议规定,在响应头中必须包含Content-Type,它用于描述响应体中实体的类型和字符集。Content-Type的格式一般为“type/subtype;charset=utf-8”,其中charset=utf-8指定了响应体的编码格式为UTF-8。常见的Content-Type类型有:

text/html:HTML格式的文本

text/plain:普通文本

application/json:JSON格式的数据

application/xml:XML格式的数据

image/jpeg:JPEG格式的图像

image/png:PNG格式的图像

除了Content-Type之外,HTTP协议还支持Content-Encoding响应头,用于指示响应体的压缩方法。常见的压缩方法有gzip和deflate,可以减少响应体的大小,提高传输效率。

例如,在使用gzip压缩后的响应体中,Content-Encoding响应头的值为“gzip”,Content-Type响应头的值为“text/html;charset=utf-8”。这样的响应体需要在客户端进行解压缩,然后按照指定的字符编码进行解码,才能得到原始的文本信息。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
你应该知道的HTTP基础知识
知识梳理-网络基础
windows上curl 发送post请求(Json) 命令
接口测试 23 requests基础入门二
[SoapUI] 通过SoapUI发送POST请求,请求的body是JSON格式的数据
python接口自动化2-发送post请求
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服