内容简介:HTTP是HyperText Transfer Protocol的缩写,意思是你可以把
HTTP是HyperText Transfer Protocol的缩写,意思是 超文本传输协议 。它是一种 应用层 协议,允许基于 WEB 的应用程序进行通信和交换数据。
你可以把 HTTP 看作是网络的信使。
HTTP 是基于 TCP/IP 协议的,可以使用 http 进行内容的传输,比如图片,视频,音频,文档等等。
客户端和服务端需要进行通信的话,通常会使用 request response cycle 的形式。
客户端需要发送 request请求 ,这样服务端才知道要通信;之后,服务端对请求进行 response响应 。
在进入话题之前,我们顺便了解下 HTTP 比较重要的三个知识点:
-
HTTP是无连接的:在发出请求后,客户端和服务端断开连接,然后当响应准备就绪的时候,服务端再次重新建立连接并发送响应。
-
HTTP可以提供任何类型的数据,只要客户端和服务端两边的电脑能够读取理解它。
-
HTTP是无状态的:客户端和服务器只是在 当前请求期间 了解彼此。如果它关闭了,并且两台电脑想要再次连接,它们需要重新提供信息。
下面说说 request-response 连接:smile:
request请求
假设你要连接一个url-- http://mywebsite/products/myproduct.html ,会先通过 tcp/ip 建立网络的连接,这会进行三次握手,具体的情况就不在这里说了。
客户端和服务端建立的连接,为它们通过 HTTP 协议进行通信提供了环境。
在建立连接之后,客户端会发送一个 请求 ,因为HTTP是无连接的,客户端会断开和服务器端的连接,等待服务器端的响应。服务器端处理了响应之后,会重新建立连接,然后发送响应信息给客户端。
HTTP信息
一个典型的HTTP信息包含三部分: 起始行、头部和主体 。如下图:
请求信息和响应信息大体是相同的,但是具体到里面的信息就有所差异了,如下图:
request请求信息
那么 发送请求信息 包含哪些呢?
我们先来看一张示例图:
在上图的起始行中包含三部分的信息: 方法、URI和HTTP版本号 。
其中 方法 有 GET, POST, DELETE等 ,不同的方法代表的意思会另开一篇文章说明; URI 是你要请求资源的路径; HTTP版本号 是你通信时使用的版本号。
URI:Uniform Resource Identifier,即统一资源标志符,用来唯一的标识一个资源。
然后就是请求头了,请求头是键值对的形式。
嗯~咦咦,示例中没有主体? ️
是的,请求体并不是必须的,示例中的 GET 请求不用带,但是在 POST 请求中 请求体 就需要带上了,其是表单的提交数据。
response响应
上面已经讲到了,服务器端接受了请求后,处理完请求,就会将信息返回给客户端。那么,响应信息都包含哪些呢?
response响应信息
如图:
图上内容分三大块,自上而下依次是 起始行、响应头和响应体 。
响应的起始行包括 http的版本号和响应的状态码 。
响应的状态码是客户端和服务器端交流的信息,通过状态码能知道两者的交流状态。我在 小结HTTP状态码 这篇文章中有讲解了下。
响应头也是键值对的形式。
之后就是响应体了,服务器端响应客服端的需求,在 响应体 中带上客户端请求的资源。
以上所述就是小编给大家介绍的《谈谈HTTP的请求和响应》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Everything Store
Brad Stone / Little, Brown and Company / 2013-10-22 / USD 28.00
The definitive story of Amazon.com, one of the most successful companies in the world, and of its driven, brilliant founder, Jeff Bezos. Amazon.com started off delivering books through the mail. Bu......一起来看看 《The Everything Store》 这本书的介绍吧!