HTTP笔记四

报文

HTTP 报文是由一行一行的简单字符串组成的。HTTP 报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写.图1-7 显示了一个简单事务所使用的HTTP 报文。

wNRt8H.png

从Web 客户端发往Web 服务器的HTTP 报文称为请求报文(request message)。从服务器发往客户端的报文称为响应报文(response message),此外没有其他类型的HTTP 报文。HTTP 请求和响应报文的格式很类似。

HTTP 报文包括以下三个部分:
起始行:报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。
首部字段:起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首部字段和添加新行一样简单。
主体:空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据(比如图片、视频、音轨、软件程序)

图1-8 显示了可能会作为某个简单事务的一部分发送的HTTP 报文。
wNWCJe.png

在图1-8 中,浏览器发送了一条HTTP 请求报文。这条请求的起始行中有一个GET命令,且请求的资源为/tools.html。这条请求说明它使用的是1.0 版的HTTP 协议。请求报文没有主体,因为从服务器上GET 一个简单的文档不需要请求数据。

服务器会回送一条HTTP 响应报文。这条响应中包含了HTTP 的版本号(HTTP/1.0)、一个成功状态码(200)、一个描述性的原因短语(OK), 以及一块响应首部字段,在所有这些内容之后跟着包含了所请求文档的响应主体。Content-Length首部说明了响应主体的长度,Content-Type 首部说明了文档的MIME 类型。

连接

报文是如何通过传输控制协议(Transmission Control Protocol,TCP)连接从一个地方搬移到另一个地方去的?

TCP/IP

HTTP 是个应用层协议。HTTP 无需操心网络通信的具体细节;它把联网的细节都交给了通用、可靠的因特网传输协议TCP/IP。

原文地址:https://www.cnblogs.com/wljqds/p/13653638.html