response和request

Request和Response的格式

转载 2017年08月08日 14:23:34

(Request和Response的格式)

一个HTTP Request(HTTP请求)的格式通常如下:
GET/path/Servlet1  HTTP/1.1
Host:localhost
user-agent:Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1; .NET CLR 1.1.4322);
Connection:keep-Alive
其他头部信息... 
(空行)
Request的Body

第一行是请求的类型(方法)、请求的资源(不含域名的路径)和HTTP版本。Host是请求的主机地址,是第一条头部信息,它和第一行请求的资源一起,组成完整的请求路径,即请求的完整网址。头部信息结束后跟着一个空行,空行后面是请求的Body部分。
如果是GET请求,Body为空,发送的数据在GET部分,作为Query String,成为请求的资源的一部分,例如:Get/path/Servlet1/ ? name=John%20Smith&age=30 HTTP/1.1
这时如果是POST请求,数据在Body部分,例如Body部分的内容是:name=John%20Smith&age=30
对于POST请求来说,它多了Content-Type和Content-Length两个头部信息。
Content-Type指Body中数据的编码类型,Content-Length是Body的长度。
/******************************************************************/
一个HTTP Response(HTTP响应)的格式通常如下:
HTTP/1.1 200 OK
Date: Sat,31 Dec 2005 23:59:59 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 122
其他头部信息... 
(空行)
Response的Body

第一行是状态行,分别是HTTP版本、表示状态的数字和信息(200和OK).下面就是一些头部信息,例如Date是产生Response的时间、Content-Type和Content-Length表示Body内容的编码类型和长度,含义和Request的相同。头部信息结束后是一个空行,空行后面跟着Body,存放向用户返回的数据,在前面的例子中,这些数据可能是文本类型、HTML类型或者XML类型的数据。
/********HTTP Request和HTTP Response的头部信息**********************/
GET的头部信息基本上就包含在了POST的头部信息中,所以下面仅针对Post的头部信息讲解。
头部信息也是Name/Value对,下面是POST的所以头部信息,等号是编程时添加的,不是头部信息格式的一部分:
1. accept=*/* : accept设置浏览器能处理的MIME类型,常见的类型有text/html(HTML文档)和text/xml(XML文档)等。
2. accept-language = en-ca:设置语言。
3. who = Me:用户自定义。
4.referer = http://localhost:8080/HelloServlet/postRequestInfo.html:调用Servlet的网址,即单击一个网页来到第二个网页,那么第一个网页的就叫做第二个网页的referer.
5.cache-control=no-cache:是否使用缓冲,默认是使用缓冲。
6.content-type=application/x-www-form-urlencoded:内容类型。
7.if-modified-since=Thu,06 Apr 2006 01:00:00 GMT:在该日期后,如果网页变了,就刷新它,这也是防止网页缓冲的方法。
8.accept-encoding=gzip,deflate:用户能处理的压缩Encoding(编码)的类型,这样服务器端就可以用任何一种类型编码,并在ResponseHeader(响应头部)的Content-Encoding中反映出来。
9.user-agent=Mozilla/4.0(compatible;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 1.1.4322):发送Request请求的浏览器。这个结果由IE浏览器产生,但仍然显示为NetScape的Mozilla,只有看括号里面的MSIE,才是真正的浏览器类型。
10.host=localhost:8080:很简单,就是主机地址。
11.content-length=1:请求Request的内容长度。
12.connection=Keep-Alive:浏览器是否可处理持续的HTTP连接。所谓持续连接指浏览器能访问多个文件,例如一个HTML文件和该文件上的图像文件。Keep-Alive的含义就是持续连接。

原文地址:https://www.cnblogs.com/erma0-007/p/8669231.html