【译】为什么要了解HTTP

原文地址:Why should I care about HTTP?
原作信息:by Devon Campbell. Dec 15 '18 Originally published at raddevon.com on Dec 14, 2018
关键词:HTTP ,BEGINNERS
译文地址:中文翻译、
中英对照
***
“HTTP”是URLs地址开头的前四个字母,对吧?这就是你构建网站所必须要知道它的原因。就像理解二进制(binary)一样,它也会帮助你理解你在其他方面不会理解的问题。他不是你必须要掌握的知识点(material:材质、物料),但是理解他会使你成为一个更全面的开发者。
作为我们软件所必须要遵循的基本通信协议(primary communication protocol),让我们来学习一下HTTP吧!

什么是HTTP?

HTTP就是超文本传输协议(Hypertext Transfer Protocol),他是一个为发送和接收(传输)web页面(超文本)而设定的规则(协议)。尽管它被称作超文本传输协议(HTTP),但它还可以被用来发送许多除超文本以外的其他内容 - 比如,JSON和images。

HTTP是如何工作的?

HTTP通信发生在客户端和服务器之间。客户端发起HTTP请求,服务器响应客户端的请求。你的web浏览器就是一个HTTP客户端。当你浏览一个web页面的时候,你的浏览器发送一个HTTP请求到一个能响应的服务器上,它(几乎)就是这么简单。

事实上,一个简单的web页面通常由多个请求组成。通常情况下,一个请求由一些HTML发起,然后服务器响应这个HTML请求。浏览器开始渲染这个页面,紧接着会发起更多渲染这个页面时所需的其他资源的请求 —— 像JavaScript文件、CSS文件和图片等的请求。

请求的部分组成

下边就是访问RadDevon.com的主页时原始(raw:未加工的)请求的样子:

GET / HTTP/2 Host: raddevon.com User-Agent: curl/7.54.0 Accept: */*

当你在地址栏输入“raddevon.com”并按下回车后,你的浏览器就会发送这个请求到我的主机上,以下是部分内容:

GET —— 请求方法。它告诉服务器这个请求想要做什么。这个请求希望服务器能够返回一些数据。MDN有一个很好的请求方法参照表。

/ —— 我们请求的资源地址。由于我们请求的主页就在服务器的根目录下,所以“/”就是我们请求资源的地址。

HTTP/2 —— 协议。这说明了该特殊请求是基于http/2.0版本的协议发出的。

另外三行就是头信息,他们告知接收请求的服务器更多关于这个请求的信息。

Host是非常明显的。 他用来识别目标主机。
【注:(obvious:明显的,显著的)、(identifies:识别,鉴定)】

User-Agent 用来识别发送请求的客户端,我例子中是用一个简单的Unix命令行当作请求客户端发送的这个curl的请求。当你用浏览器发起一个请求的时候,这里就会展示浏览器的名字和版本。

Accept 告诉服务器,客户端可以接收的响应类型

这个网页中讲述了更多在你的网络请求中可以用到的请求头,我这里仅仅是本次请求发生时用到的。你甚至可以自己创建请求头来给服务器发送额外的信息。

除了头部信息以外,你的请求可能还会有一个身体。当一个表格被提交后,他的数据通常放在请求体中被发送给服务器。

为什么需要去理解HTTP?

理解HTTP是怎么工作的,特别的,理解各种各样的请求状态码和他们各自的意思,能帮助你解决自己程序的问题、恰当的处理错误。了解到你页面中用的每一个资源(脚本、图片、样式表、等等)都表示一个单独的请求也可以帮你优化自己程序的性能。

这篇文章帮助到你了嘛?我的目标是去帮助人们逐渐深入到web开发领域里来。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpjxfd.html