一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
第一部分:状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。
第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok)
第二部分:消息报头,用来说明客户端要使用的一些附加信息
第二行和第三行和第四行为消息报头,
Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是ISO-8859-1
第三部分:空行,消息报头后面的空行是必须的
第四部分:响应正文,服务器返回给客户端的文本信息。
空行后面的html部分为响应正文。
HTTP协议响应流是指在客户端向服务器发起请求后,服务器通过网络传输向客户端返回的数据流。
HTTP协议响应流包括一个响应行和若干个响应头域。响应行包括 HTTP 协议的版本、状态码和状态信息,如下所示:
HTTP/1.1 200 OK
响应头域则包括关于响应内容的元信息,如内容类型、内容长度、服务器名称等。例如:
Content-Type: text/html
Content-Length: 1234
Server: Apache/2.4.18
在响应头域之后,是一个空行,然后是响应正文,即服务器返回给客户端的内容。
例如,一个完整的 HTTP 响应流可能看起来像这样:
HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 1234
Server: Apache/2.4.18
This is an example page.
当服务器收到浏览器的请求后,会发送响应消息给浏览器。一个完整的响应消息主要包括响应首行、响应头信息、空行和响应正文。
HTTP响应消息分析
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Content-Length: 624
Date: Mon, 03 Nov 2014 06:37:28 GMT
响应体内容
(1)响应首行:其内容是”HTTP/1.1 200 OK”
l HTTP/1.1 :表示协议版本
l 200 :表示响应状态码,200表示响应成功。
l OK :表示响应成功,对响应状态码的解释。
(2)响应头信息:类似于请求消息中的请求头,其格式和请求头信息格式一样,即响应头:响应头值。
l Server响应头:该响应头是服务器告诉浏览器,当前响应的服务类型和版本。
l Content-Type响应头:服务器告诉浏览器响应内容是什么类型,以及采用的是什么字符编码。该响应头的值现在为:text/html;charset=utf-8。说明响应信息的类型是文本类型中的html,使用的字符编码是utf-8。
l Content-Length响应头:服务器告诉浏览器,响应内容的长度,该响应内容的长度现在是624个字节。
l Date响应头:表示是服务器是在什么时候响应回浏览器,注意这里的时间是按照美国时间来计算。
(3)空行:响应头和响应体由空行连接。
(4)响应体:该响应消息的响应体是一个html文档。浏览器可以直接识别这个html文件。而我们访问的是一个jsp文件,响应回去的是一个html文件。说明服务器将该jsp翻译成了一个html,然后再响应给浏览器。
HTTP协议响应流指的是HTTP客户端向服务器发送请求后,服务器返回给客户端的数据流,即HTTP响应。HTTP响应流通常包括以下几个部分:
状态行:包括HTTP协议版本号、响应状态码和对应的状态信息。
消息头:包含了与HTTP响应相关的各种元数据,如内容类型、编码方式、缓存策略等。
响应正文:即服务器返回给客户端的具体数据内容,可以是HTML、XML、JSON等各种格式的数据。
在HTTP协议中,客户端通过发送请求来向服务器获取资源,而服务器则通过返回响应来向客户端传递所请求的资源。其中,响应流的内容会根据不同的HTTP请求和响应方式而有所区别,例如GET请求和POST请求的响应流就可能存在差异。
需要注意的是,HTTP协议响应流是一种基于文本的协议,因此它的可读性和易用性都很强,但也存在安全性和效率等方面的问题,需要在使用时加以注意。