2月阅读周·HTTP权威指南:HTTP概述之事务篇

举报
叶一一 发表于 2025/02/23 15:25:16 2025/02/23
【摘要】 引言HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不...

引言

HTTP(Hypertext Transfer Protocol,超文本传输协议)是在万维网上进行通信时所使用的协议方案。HTTP有很多应用,但最著名的是用于Web浏览器和Web服务器之间的双工通信。

《HTTP权威指南》一书将HTTP中一些互相关联且常被误解的规则梳理清楚,并编写了一系列基于各种主题的章节介绍HTTP各方面的特性。纵观全书,对HTTP“为什么”这样做进行了详细的解释,而不仅仅停留在它是“怎么做”的。此外,这本书还介绍了很多HTTP应用程序正常工作所必需且重要的非HTTP技术。

这本书主要包括以下内容:

  • 第一部分描述了Web的基础构件与HTTP的核心技术
  • 第二部分重点介绍了Web系统的结构构造块:HTTP服务器、代理、缓存、网关以及机器人应用程序。
  • 第三部分提供了一套用于追踪身份、增强安全性以及控制内容访问的技术和技巧。
  • 第四部分涵盖HTTP报文主体和Web标准,前者包含实际内容,后者描述并处理主体内容。
  • 第五部分介绍了发布和传播Web内容的技巧。
  • 第六部分是一些很有用的参考附录,以及相关技术的教程。

HTTP概述

Web浏览器、服务器和相关的Web应用程序都是通过HTTP相互通信的。HTTP是现代全球因特网中使用的公共语言。

事务

客户端是怎样通过HTTP与Web服务器及其资源进行事务处理的?

一个HTTP事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。这种通信是通过名为HTTP报文(HTTP message)的格式化数据块进行的。

方法

HTTP支持几种不同的请求命令,这些命令被称为HTTP方法(HTTP method)。每条HTTP请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取一个Web页面、运行一个网关程序、删除一个文件等)。

表1-1列出了五种常见的HTTP方法。

2-1.jpg

状态码

每条HTTP响应报文返回时都会携带一个状态码。状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。表1-2显示了几种常见的状态码。

2-2.jpg

伴随着每个数字状态码,HTTP还会发送一条解释性的“原因短语”文本。包含文本短语主要是为了进行描述,所有的处理过程使用的都是数字码。

HTTP软件处理下列状态码和原因短语的方式是一样的。

200 OK
200 Document attached
200 Success
200 All's cool, dude

Web页面中可以包含多个对象

应用程序完成一项任务时通常会发布多个HTTP事务。比如,Web浏览器会发布一系列HTTP事务来获取并显示一个包含了丰富图片的Web页面。浏览器会执行一个事务来获取描述页面布局的HTML“框架”,然后发布另外的HTTP事务来获取每个嵌入式图片、图像面板、Java小程序等。这些嵌入式资源甚至可能位于不同的服务器上。因此,一个“Web页面”通常并不是单个资源,而是一组资源的集合。

用途

  1. 资源获取:客户端通过HTTP事务从服务器获取各种资源,如HTML页面、图片、CSS文件、JavaScript文件等。这是HTTP协议最基本的用途,也是互联网上数据传输的基础。
  2. 数据提交:客户端可以通过HTTP事务向服务器提交数据,如用户在表单中输入的数据。服务器接收到数据后,可以进行处理,如存储到数据库中、进行业务逻辑处理等。
  3. 状态管理:HTTP事务可以用于管理客户端和服务器之间的状态。例如,通过使用Cookie或Session,服务器可以在多个HTTP事务中识别同一个客户端,并保持客户端的登录状态、购物车状态等。
  4. API调用:在现代Web应用中,客户端和服务器之间通常通过API进行通信。HTTP事务是实现API调用的基础,客户端通过发送HTTP请求来调用服务器上的API,服务器通过发送HTTP响应来返回API的执行结果。

总结

在HTTP(超文本传输协议)中,事务指的是客户端和服务器之间的一次完整的交互过程,包括请求和响应。一个HTTP事务通常由以下几个步骤组成:

  1. 客户端发送请求:客户端(如浏览器)向服务器发送一个HTTP请求,请求中包含了请求方法(如GET、POST等)、请求的URL、请求头(包含了客户端的一些信息和请求的一些元数据)以及可选的请求体(通常在POST请求中用于发送数据)。
  2. 服务器处理请求:服务器接收到客户端的请求后,根据请求的URL和方法来处理请求。这可能涉及到读取或修改服务器上的资源,执行一些业务逻辑等。
  3. 服务器发送响应:服务器处理完请求后,会向客户端发送一个HTTP响应。响应中包含了状态码(表示请求的处理结果,如200表示成功,404表示未找到资源等)、响应头(包含了服务器的一些信息和响应的一些元数据)以及响应体(通常包含了请求的资源数据或处理结果)。
  4. 客户端接收响应:客户端接收到服务器的响应后,根据状态码和响应体来处理响应。例如,如果状态码是200,客户端会解析响应体中的数据并显示给用户;如果状态码是404,客户端可能会显示一个错误页面。

作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏️ | 留言📝

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。