HTTP报文格式概览

简介: 【6月更文挑战第21天】HTTP报文始于起始行:请求行(含方法如GET、POST,URL和HTTP版本)用于指示服务器执行操作;响应行(含HTTP版本、状态码,如200,和原因短语,如OK)告知客户端操作结果。

所有的HTTP报文都以一个起始行作为开始。请求报文的起始行说明了要做些什么。响应报文的起始行说明发生了什么。

1、请求行

请求报文请求服务器对资源进行一些操作。请求报文的起始行,或称为请求行,包含了一个方法和一个请求URL,这个方法描述了服务器应该执行的操作,请求URL描述了要对哪个资源执行这个方法。请求行中还包含HTTP的版本,用来告知服务器,客户端使用的是哪种HTTP。所有这些字段都由空格符分隔。

2、响应行

响应报文承载了状态信息和操作产生的所有结果数据,将其返回给客户端。响应报文的起始行,或称为响应行,包含了响应报文使用的HTTP版本、数字状态码,以及描述操作状态的文本形式的原因短语。所有这些字段都由空格符进行分隔。

3、方法

请求的起始行以方法作为开始,方法用来告知服务器要做些什么。比如,在行“GET /specials/saw-blade.gif HTTP/1.0”中,方法就是GET。


HTTP规范中定义了一组常用的请求方法。比如,GET方法负责从服务器获取一个文档,POST方法会向服务器发送需要处理的数据,OPTIONS方法用于确定Web服务器的一般功能,或者Web服务器处理特定资源的能力。

并不是所有服务器都实现了上表所有7种方法。而且,由于HTTP设计得易于扩展,所以除了这些方法之外,其他服务器可能还会实现一些自己的请求方法。这些附加的方法是对HTTP规范的扩展,因此被称为扩展方法。

4、状态码

方法是用来告诉服务器做什么事情的,状态码则用来告诉客户端,发生了什么事情。状态码位于响应的起始行中。


比如,在行HTTP/1.0200 OK中,状态码就是200。客户端向一个HTTP服务器发送请求报文时,会发生很多事情。幸运的话,请求会成功完成。但你不会总是那么幸运的。服务器可能会告诉你无法找到所请求的资源,你没有访问资源的权限,或者资源被移到了其他地方。


状态码是在每条响应报文的起始行中返回的。会返回一个数字状态和一个可读的状态。数字码便于程序进行差错处理,而原因短语则更便于人们理解。


可以通过三位数字代码对不同状态码进行分类。200到299之间的状态码表示成功。300到399之间的代码表示资源已经被移走了。400到499之间的代码表示客户端的请求出错了。500到599之间的代码表示服务器出错了。

5、原因短语

原因短语是响应起始行中的最后一个组件。它为状态码提供了文本形式的解释。比如,在行HTTP/1.0200 OK中,OK就是原因短语。原因短语和状态码是成对出现的。


原因短语是状态码的可读版本,应用程序开发者将其传送给用户,用以说明在请求期间发生了什么情况。HTTP规范并没有提供任何硬性规定,要求原因短语以何种形式出现。

6、版本号

版本号会以HTTP/x.y的形式出现在请求和响应报文的起始行中。为HTTP应用程序提供了一种将自己所遵循的协议版本告知对方的方式。


使用版本号的目的是为使用HTTP的应用程序提供一种线索,以便互相了解对方的能力和报文格式。在与使用HTTP 1.1的应用程序进行通信的HTTP 1.2应用程序应该知道,它不能使用任何新的1.2特性,因为使用老版本协议的应用程序很可能无法实现这些特性。


版本号说明了应用程序支持的最高HTTP版本。但HTTP/1.0应用程序在解释包含HTTP/1.1的响应时,会认为这个响应是个1.1响应,而实际上这只是响应应用程序所使用的协议等级,在这些情况下,版本号会在应用程序之间造成误解。


注意,版本号不会被当作小数来处理。版本中的每个数字(比如HTTP/1.0中的1和0)都会被当作一个单独的数字来处理。因此,在比较HTTP版本时,每个数字都必须单独进行比较,以便确定哪个版本更高。比如,HTTP/2.22就比HTTP/2.3的版本要高,因为22比3大。

相关文章
|
3月前
|
网络协议 JavaScript 前端开发
【HTTP】HTTP报文格式和抓包
【HTTP】HTTP报文格式和抓包
104 0
|
4月前
|
网络协议
网络协议概览:HTTP、UDP、TCP与IP
理解这些基本的网络协议对于任何网络专业人员都是至关重要的,它们不仅是网络通信的基础,也是构建更复杂网络服务和应用的基石。网络技术的不断发展可能会带来新的协议和标准,但这些基本协议的核心概念和原理将继续是理解和创新网络技术的关键。
245 0
|
7月前
|
域名解析 存储 缓存
HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口
【6月更文挑战第23天】 HTTP请求流程概览:浏览器构建请求行含方法、URL和版本;检查缓存;解析IP与端口;TCP连接(HTTP/1.1可能需排队);三次握手;发送请求头与体;服务器处理并返回响应;TCP连接可能关闭或保持;浏览器接收并显示响应,更新缓存。HTTP版本间有差异。
112 5
|
网络协议 安全 Linux
深入解析HTTP请求:了解请求特征与报文格式的关键秘密
这篇文章将带您深入了解HTTP请求的特征和报文格式。HTTP作为一种简单、灵活且易于扩展的协议,适用于各种操作系统和设备。我们还将探讨持久性连接如何提高请求的效率。了解HTTP报文的构成,包括起始行、头部字段和消息正文,将帮助您更好地理解HTTP的工作原理。无论您是初学者还是已经有一定了解的读者,本文都将为您提供全面的HTTP知识。
371 1
深入解析HTTP请求:了解请求特征与报文格式的关键秘密
|
负载均衡 网络协议 安全
【服务网格架构】Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
【服务网格架构】Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
|
存储 JSON 负载均衡
Envoy架构概览(2):HTTP过滤器,HTTP路由,gRPC,WebSocket支持,集群管理器
Envoy架构概览(2):HTTP过滤器,HTTP路由,gRPC,WebSocket支持,集群管理器
|
负载均衡 网络协议 安全
Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
Envoy 架构概览(1):术语,线程模型,监听器和网络(L3 / L4)过滤器和HTTP连接管理
|
域名解析 缓存 网络协议
HTTP 和 HTTPS(请求响应报文格式 + 请求方法 + 响应状态码 + HTTPS 加密流程 + Cookie 和 Session)
1. HTTP 是什么 2. HTTP 请求报文和响应报文的格式 1)请求报文格式 2)响应报文格式 3)报文中空行的作用 3. HTTP 的长连接和短连接 4. URL 1)在浏览器中输入 www.baidu.com 后执行的全部过程 5. HTTP 常用的请求方法 6. GET 和 POST 的区别 7. HTTP 常见的响应状态码 8. HTTPS 是什么 1)SSL 协议 9. HTTPS 怎么进行 “加密” 1)对称加密 2)非对称加密 3)CA 证书 4)HTTPS 加密的完整流程 10. HTTPS 的优缺点 11. HTTPS 和 HTTP 的区别
464 0
|
JavaScript 开发者
http 请求报文和响应报文格式介绍|学习笔记
快速学习 http 请求报文和响应报文格式介绍
http 请求报文和响应报文格式介绍|学习笔记
|
测试技术
软件测试面试题:http 报文格式是怎样的?
软件测试面试题:http 报文格式是怎样的?
90 0