HTTP协议常用的请求头和响应头响应详解说明(学习)
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">一、前言</a></li><li><a href="#_label1">二、Http请求头:</a></li><ul class="second_class_ul"><li><a href="#_lab2_1_0">1、Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</a></li><li><a href="#_lab2_1_1">2、 Accept-Encoding:gzip, deflate</a></li><li><a href="#_lab2_1_2">3、 Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3</a></li><li><a href="#_lab2_1_3">4、 Connection:keep-alive;</a></li><li><a href="#_lab2_1_4">5、 Cookie:JSESSIONID=2B5F5F6380CA6339CEF98AD9A9E95AB4</a></li><li><a href="#_lab2_1_5">6、 Host:localhost:8080</a></li><li><a href="#_lab2_1_6">7、 User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:55.0) Gecko/20100101 Firefox/55.0</a></li><li><a href="#_lab2_1_7">8、 Pragma</a></li></ul><li><a href="#_label2">三、 Http响应头</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_8">1、 Content-Language:zh-CN</a></li><li><a href="#_lab2_2_9">2、 Content-Length:317</a></li><li><a href="#_lab2_2_10">3、 Content-Type:text/html;charset=UTF-8</a></li><li><a href="#_lab2_2_11">4、 Date:Thu, 07 Sep 2017 14:34:35</a></li><li><a href="#_lab2_2_12">5、 GMTServer:Apache-Coyote/1.1</a></li><li><a href="#_lab2_2_13">6、 HTTP/1.1 200 OK</a></li></ul></ul></div><p>通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的消息体组成。HTTP请求头提供了关于请求,响应或者其他的发送实体的信息。HTTP的头信息包括通用头、请求头、响应头和实体头四个部分。每个头域由一个域名,冒号(:)和域值三部分组成。</p><p class="maodian"><a name="_label0"></a></p><h2>一、前言</h2>
<p><strong>一次完整的HTTP请求所经历的7个步骤</strong></p>
<p>说明:HTTP通讯机制是在一次完整的HTTP通讯过程当中,web浏览器与web服务器之间将完成下列7个步骤:缓存</p>
<ul><li>创建TCP链接</li><li>Web浏览器向web服务器发送请求命令 例如:GET /sample/hello.jsp HTTP 1.1</li><li>Web浏览器发送请求头信息</li><li>Web服务器应答 例如:HTTP/1.1 200 ok</li><li>Web服务器发送应答头信息</li><li>Web服务器向浏览器发送数据</li><li>Web服务器关闭TCP链接</li></ul>
<p> </p>
<p class="maodian"><a name="_label1"></a></p><h2>二、Http请求头:</h2>
<p class="maodian"><a name="_lab2_1_0"></a></p><h3><strong>1、Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</strong></h3>
<p> 意思:浏览器支持的请求 MIME 类型分别是 text/html、application/xhtml+xml、application/xml 和 */*,优先顺序是它们从左到右的排列顺序</p>
<p><strong> 详解:</strong></p>
<p> Accept表示浏览器支持的 MIME 类型;</p>
<p> MIME的英文全称是 Multipurpose Internet Mail Extensions(多功能 Internet 邮件扩充服务),它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。</p>
<p> text/html,application/xhtml+xml,application/xml 都是 MIME 类型,也可以称为媒体类型和内容类型,斜杠前面的是 type(类型),斜杠后面的是 subtype(子类型);type 指定大的范围,subtype 是 type 中范围更明确的类型,即大类中的小类。</p>
<p> Text:用于标准化地表示的文本信息,文本消息可以是多种字符集和或者多种格式的;</p>
<p> text/html :表示 html 文档;</p>
<p> Application:用于传输应用程序数据或者二进制数据;</p>
<p> application/xhtml+xml :表示 xhtml 文档;</p>
<p> application/xml:表示 xml 文档。</p>
<p class="maodian"><a name="_lab2_1_1"></a></p><h3><strong>2、 Accept-Encoding:gzip, deflate</strong></h3>
<p><strong> </strong>意思:浏览器支持的压缩编码是 gzip 和 deflate。</p>
<p> <strong>详解:</strong></p>
<p> Accept-Encoding表示浏览器有能力解码的编码类型;</p>
<p> gzip是 GNU zip 的缩写,它是一个 GNU 自由软件的文件压缩程序,也经常用来表示 gzip 这种文件格式。</p>
<p> deflate是同时使用了 LZ77 算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。</p>
<p class="maodian"><a name="_lab2_1_2"></a></p><h3><strong>3、 Accept-Language:zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3</strong></h3>
<p><strong> </strong>意思:浏览器支持的语言分别是中文和简体中文,优先支持简体中文。</p>
<p class="maodian"><a name="_lab2_1_3"></a></p><h3><strong>4、 Connection:keep-alive;</strong></h3>
<p><strong> </strong>Connection表示客户端与服务连接类型;</p>
<p> Keep-Alive表示持久连接;</p>
<p> 如果Servlet看到这里的值为“Keep - Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接),它就可以利用持久连接的优点,当页面包含多个元素时(例如Applet,图片),显著地减少下载所需要的时间。要实现这一点,Servlet需要在应答中发送一个Content - Length头,最简单的实现方法是:先把内容写入ByteArrayOutputStream,然后在正式写出内容之前计算它的大小。</p>
<p class="maodian"><a name="_lab2_1_4"></a></p><h3><strong>5、 Cookie:JSESSIONID=2B5F5F6380CA6339CEF98AD9A9E95AB4</strong></h3>
<p><strong> </strong>缓存的sessionID和浏览器中的缓存,没有缓存是无法实现session相关功能的。</p>
<p class="maodian"><a name="_lab2_1_5"></a></p><h3><strong>6、 Host:localhost:8080</strong></h3>
<p><strong> </strong>Host表示请求的服务器网址;</p>
<p class="maodian"><a name="_lab2_1_6"></a></p><h3><strong>7、 User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:55.0) Gecko/20100101 Firefox/55.0</strong></h3>
<p><strong> </strong>意思:使用的用户代理是 Mozilla/5.0 (compatible; 域名)。</p>
<p class="maodian"><a name="_lab2_1_7"></a></p><h3>8、 Pragma</h3>
<p> 指定“no - cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝,常用来禁止缓存。</p>
<p></p>
<p class="maodian"><a name="_label2"></a></p><h2>三、 Http响应头</h2>
<p class="maodian"><a name="_lab2_2_8"></a></p><h3><strong>1、 Content-Language:zh-CN</strong></h3>
<p><strong> </strong>响应的语言类型,中文简体</p>
<p class="maodian"><a name="_lab2_2_9"></a></p><h3><strong>2、 Content-Length:317</strong></h3>
<p><strong> </strong>响应的内容的长度</p>
<p class="maodian"><a name="_lab2_2_10"></a></p><h3><strong>3、 Content-Type:text/html;charset=UTF-8</strong></h3>
<p><strong> </strong>响应具体MIME类型</p>
<p class="maodian"><a name="_lab2_2_11"></a></p><h3><strong>4、 Date:Thu, 07 Sep 2017 14:34:35</strong></h3>
<p><strong> </strong>响应时间</p>
<p class="maodian"><a name="_lab2_2_12"></a></p><h3><strong>5、 GMTServer:Apache-Coyote/1.1</strong></h3>
<p><strong> </strong>响应的服务器类型</p>
<p class="maodian"><a name="_lab2_2_13"></a></p><h3><strong>6、 HTTP/1.1 200 OK</strong></h3>
<p><strong> </strong>响应的状态码</p>
<p> 详解:</p>
<p> 在本例中,状态行给出的HTTP状态代码是200,以及消息OK。状态行始终包含的是状态码和相应的简短消息,以避免混乱。最常用的状态码有:<br /> ◆200 (OK): 找到了该资源,并且一切正常。<br /> ◆304 (NOT MODIFIED): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。<br /> ◆401 (UNAUTHORIZED): 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。<br /> ◆403 (FORBIDDEN): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。<br /> ◆404 (NOT FOUND): 在指定的位置不存在所申请的资源。</p>
<p> ◆500:服务器异常。 </p>
頁:
[1]