`

HTTP协议精解(2)

    博客分类:
  • HTTP
阅读更多

在HTTP/1.1中用到的头标

头标格式:<name>:<value><CRLF>

Accept    

             定义客户端可以处理的媒体类型,按优先级排序;
             在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。

             例如:Accept: image/jpeg,image/png,*/*
Accept-Charset        

             定义客户端可以处理的字符集,按优先级排序;
             在一个以逗号为分隔的列表中,可以定义多种类型和使用通配符。

            例如:Accept-Charset: iso-8859-1,*,utf-8
Accept-Encoding        

           定义客户端可以理解的编码机制。

           例如:Accept-Encoding:gzip,compress
Accept-Language    

           定义客户端乐于接受的自然语言列表。

           例如:Accept-Language: en,de
Accept-Ranges        

            一个响应头标,它允许服务器指明:

            将在给定的偏移和长度处,为资源组成部分的接受请求。
             该头标的值被理解为请求范围的度量单位。

            例如Accept-Ranges: bytes或Accept-Ranges: none
Age            

            允许服务器规定自服务器生成该响应以来所经过的时间长度,

            以秒为单位。该头标主要用于缓存响应。

            例如:Age: 30
Allow            

             一个响应头标,它定义一个由位于请求URI中的次源所支持的HTTP方法列表。

            例如:Allow: GET,PUT
aUTHORIZATION        

            一个响应头标,用于定义访问一种资源所必需的授权

          (域和被编码的用户ID与口令)。
             例如:Authorization: Basic YXV0aG9yOnBoaWw=
Cache-Control        

            一个用于定义缓存指令的通用头标。

           例如:Cache-Control: max-age=30
Connection        

           一个用于表明是否保存socket连接为开放的通用头标。

          例如:Connection: close或Connection: keep-alive
Content-Base        

           一种定义基本URI的实体头标,为了在实体范围内解析相对URLs。
             如果没有定义Content-Base头标解析相对URLs,

           使用Content-Location URI(存在且绝对)或使用URI请求。
             例如:Content-Base: Http://www.myweb.com
Content-Encoding    

           一种介质类型修饰符,标明一个实体是如何编码的。

           例如:Content-Encoding: zip
Content-Language    

           用于指定在输入流中数据的自然语言类型。

           例如:Content-Language: en
Content-Length        

           指定包含于请求或响应中数据的字节长度。

           例如:Content-Length:382
Content-Location

           指定包含于请求或响应中的资源定位(URI)。
            如果是一绝。对URL它也作为被解析实体的相对URL的出发点。
            例如:Content-Location:
http://www.myweb.com/news
Content-MD5

             实体的一种MD5摘要,用作校验和。
             发送方和接受方都计算MD5摘要,接受方将其计算的值与

            此头标中传递的值进行比较。
             例如:Content-MD5: <base64 of 128 MD5 digest>
Content-Range

             随部分实体一同发送;标明被插入字节的低位与高位字节偏移,

           也标明此实体的总长度。
             例如:Content-Range: 1001-2000/5000
Contern-Type

            标明发送或者接收的实体的MIME类型。

           例如:Content-Type: text/html
Date

            发送HTTP消息的日期。

           例如:Date: Mon,10PR 18:42:51 GMT
ETag            

           一种实体头标,它向被发送的资源分派一个唯一的标识符。
             对于可以使用多种URL请求的资源,ETag可以用于确定实

           际被发送的资源是否为同一资源。
             例如:ETag: "208f-419e-30f8dc99"
Expires

            指定实体的有效期。

           例如:Expires: Mon,05 Dec 2008 12:00:00 GMT
Form

            一种请求头标,给定控制用户代理的人工用户的电子邮件地址。

          例如:From: webmaster@myweb.com
Host

            被请求资源的主机名。对于使用HTTP/1.1的请求而言,

           此域是强制性的。

           例如:Host: www.myweb.com
If-Modified-Since

         如果包含了GET请求,导致该请求条件性地依赖于资源上次修改日期。
           如果出现了此头标,并且自指定日期以来,此资源已被修改,

          应该反回一个304响应代码。
            例如:If-Modified-Since: Mon,10PR 18:42:51 GMT
If-Match

            如果包含于一个请求,指定一个或者多个实体标记。

           只发送其ETag与列表中标记区配的资源。
             例如:If-Match: "208f-419e-308dc99"
If-None-Match

         如果包含一个请求,指定一个或者多个实体标记。

          资源的ETag不与列表中的任何一个条件匹配,操作才执行。
             例如:If-None-Match: "208f-419e-308dc99"
If-Range

            指定资源的一个实体标记,客户端已经拥有此资源的一个拷贝。

           必须与Range头标一同使用。如果此实体自上次被客户端检索以来,

           还不曾修改过,那么服务器只发送指定的范围,否则它将发送整个资源。
             例如:Range: byte=0-499<CRLF>If-Range:"208f-419e-30f8dc99"
If-Unmodified-Since

            只有自指定的日期以来,被请求的实体还不曾被修改过,才会返回此实体。
             例如:If-Unmodified-Since:Mon,10PR 18:42:51 GMT
Last-Modified

            指定被请求资源上次被修改的日期和时间。

           例如:Last-Modified: Mon,10PR 18:42:51 GMT
Location

            对于一个已经移动的资源,用于重定向请求者至另一个位置。
             与状态编码302(暂时移动)或者301(永久性移动)配合使用。
             例如:Location:
http://www2.myweb.com/index.jsp
Max-Forwards

            一个用于TRACE方法的请求头标,以指定代理或网关的最大数目,该请求通过网关才得以路由。
             在通过请求传递之前,代理或网关应该减少此数目。

          例如:Max-Forwards: 3
Pragma

            一个通用头标,它发送实现相关的信息。

           例如:Pragma: no-cache
Proxy-Authenticate

           类似于WWW-Authenticate,便是有意请求只来自请求链(代理)

          的下一个服务器的认证。
            例如:Proxy-Authenticate: Basic realm-admin
Proxy-Proxy-Authorization

          类似于授权,但并非有意传递任何比在即时服务器链中更进一步的内容。
          例如:Proxy-Proxy-Authorization: Basic YXV0aG9yOnBoaWw=
Public

          列表显示服务器所支持的方法集。

         例如:Public: OPTIONS,MGET,MHEAD,GET,HEAD
Range

           指定一种度量单位和一个部分被请求资源的偏移范围。

          例如:Range: bytes=206-5513
Refener

            一种请求头标域,标明产生请求的初始资源。对于HTML表单,它包含此表单的Web页面的地址。
             例如:Refener:
http://www.myweb.com/news/search.html
Retry-After

         一种响应头标域,由服务器与状态编码503(无法提供服务)配合发送,

       以标明再次请求之前应该等待多长时间。此时间即可以是一种日期,也可以是一种秒单位。

        例如:Retry-After: 18
Server

          一种标明Web服务器软件及其版本号的头标。

        例如:Server: Apache/2.0.46(Win32)
Transfer-Encoding

         一种通用头标,标明对应被接受方反向的消息体实施变换的类型。

        例如:Transfer-Encoding: chunked
Upgrade

         允许服务器指定一种新的协议或者新的协议版本,与响应编码101(切换协议)配合使用。
         例如:Upgrade: HTTP/2.0
User-Agent

         定义用于产生请求的软件类型(典型的如Web浏览器)。
         例如:User-Agent: Mozilla/4.0(compatible; MSIE 5.5; Windows NT; DigExt)
Vary

         一个响应头标,用于表示使用服务器驱动的协商从可用的响应表示中选择响应实体。

        例如:Vary: *
Via  

         一个包含所有中间主机和协议的通用头标,用于满足请求。

        例如:Via: 1.0 fred.com, 1.1 wilma.com
Warning  

         用于提供关于响应状态补充信息的响应头标。

        例如:Warning: 99 www.myweb.com Piano needs tuning
www-Authenticate

         一个提示用户代理提供用户名和口令的响应头标,与状态编码401(未授权)

        配合使用。响应一个授权头标。

 

HTTP响应码
响应码由三位十进制数字组成,它们出现在由HTTP服务器发送的响应的第一行。

响应码分五种类型,由它们的第一位数字表示:
1.1xx:信息,请求收到,继续处理
2.2xx:成功,行为被成功地接受、理解和采纳
3.3xx:重定向,为了完成请求,必须进一步执行的动作
4.4xx:客户端错误,请求包含语法错误或者请求无法实现
5.5xx:服务器错误,服务器不能实现一种明显无效的请求

下表显示每个响应码及其含义:
100            继续
101            分组交换协
200            OK
201            被创建
202            被采纳
203            非授权信息
204            无内容
205            重置内容
206            部分内容
300            多选项
301            永久地传送
302            找到
303            参见其他
304            未改动
305            使用代理
307            暂时重定向
400            错误请求
401            未授权
402            要求付费
403            禁止
404            未找到
405            不允许的方法
406            不被采纳
407            要求代理授权
408            请求超时
409            冲突
410            过期的
411            要求的长度
412            前提不成立
413            请求实例太大
414            请求URI太大
415            不支持的媒体类型
416            无法满足的请求范围
417            失败的预期
500            内部服务器错误
501            未被使用
502            网关错误
503            不可用的服务
504            网关超时
505            HTTP版本未被支持

分享到:
评论

相关推荐

    HTTP协议精解.zip

    这个“HTTP协议精解.zip”压缩包包含了一份详细的文档“HTTP协议精解.doc”,我们来深入探讨一下HTTP协议的相关知识。 一、HTTP协议基础 HTTP协议基于TCP/IP协议,工作在应用层,主要用于传输Web内容。其基本工作...

    HTTP协议精解.doc

    HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,它定义了浏览器(客户端)和WEB服务器之间通信的数据格式以及交互流程。HTTP协议基于TCP/IP协议集,属于应用层协议,负责处理用户通过浏览器发起的...

    HTTP协议精解

    HTTP协议精解知识点详解: 一、HTTP协议基础 HTTP(超文本传输协议)是一个应用层的网络协议,它定义了客户端如何向服务器请求数据、服务器如何向客户端回送数据以及数据传输的具体格式。HTTP是无状态的协议,即...

    HTTP 协议 精解

    HTTP协议精解 WEB服务器和浏览器之间的一问一答的交互过程也得遵循一定的规则,这个规则就是HTTP协议。它是TCP/IP协议集中的一个应用层协议,用于定义浏览 器和WEB服务器之间交换数据过程以及数据本身的格式。现在被...

    Cocos2D-X游戏开发技术精解.pdf

    对于多人在线游戏,网络编程部分会涉及TCP/IP通信、WebSocket协议以及Cocos2D-X提供的网络API,帮助开发者构建多人在线游戏的服务器端和客户端通信机制。 最后,书籍可能还会介绍Cocos2D-X的发布流程,包括平台适配...

    Cocos2D X游戏开发技术精解 光盘

    《Cocos2D-X游戏开发技术精解》是由刘剑卓编著的一本关于Cocos2D-X游戏引擎的专业教程,旨在帮助开发者深入理解和掌握这一强大的2D游戏开发工具。Cocos2D-X是一个跨平台的游戏开发框架,支持iOS、Android、Windows等...

    Java网络编程精解(孙卫琴)电子教案

    2. **TCP/IP协议** - **TCP协议**:传输控制协议,提供面向连接的、可靠的、基于字节流的数据传输服务。Java中的Socket和ServerSocket类用于实现TCP通信。 - **IP协议**:互联网协议,主要负责数据包的路由和分发...

    软件设计师考试-7.软件设计师考试试题分类精解(2018版).zip

    3. **计算机网络**:软件设计师需要理解网络通信的基本原理,如TCP/IP协议、HTTP协议、DNS解析等,以及网络安全相关的知识,例如加密、防火墙和入侵检测。 4. **数据库设计与管理**:数据库是软件系统中的核心组件...

    Qt及Qt+Quick开发实战精解霍亚飞编著.zip

    Qt提供了一套完整的网络API,使得开发者能够轻松地处理HTTP、FTP等网络协议。同时,通过QSql模块,开发者可以方便地连接各种数据库系统,进行数据的读取和写入。多线程技术在现代应用中不可或缺,Qt提供了QThread类...

    php典型模块精解

    - **支持多种协议**:除了 HTTP,还支持 FTP、SFTP 等多种协议。 - **可定制性强**:支持设置各种选项,如超时时间、请求头等。 - **使用灵活**:既可以用于简单的 GET 请求,也可以用于复杂的 POST 请求。 **使用...

    PHP典型模块精解.rar

    此外,还支持WebSocket协议,可用于实时通信。 6. **会话控制**:session和cookie是保持用户状态的主要手段。理解如何创建、修改和管理session,以及如何设置和读取cookie,对于构建用户登录、购物车等应用场景至关...

    j2me开发精解pdf03(完整版)

    5. **网络编程**:J2ME支持HTTP、WAP等网络协议,使得移动应用可以访问互联网资源,进行数据交换。 6. **数据存储**:在J2ME中,可以使用Record Management System (RMS)进行本地数据存储,适用于小型数据库操作。 ...

    《PERL实例精解第4版》(原书示例代码)

    网络编程是现代应用程序的常见需求,Perl可以方便地处理HTTP、FTP等协议。书中的示例可能包括发送HTTP请求、下载文件或创建简单的Web服务器。 模块是Perl的强大力量之一,它们允许程序员重用和分发代码。Perl的CPAN...

    jsp软件工程案例精解

    JSP提供了九个内置对象,如request、response、session、application等,它们对应于HTTP协议中的相应对象,简化了开发者对请求数据、响应内容、会话和全局应用程序状态的处理。 6. **EL(Expression Language)** ...

    PIC系列单片机开发实例精解 光盘

    2. **汇编语言和C语言编程**:PIC 单片机既支持汇编语言编程,也支持高级的 C 语言编程。汇编语言能提供更精细的控制,而 C 语言则提高了代码的可读性和可移植性。熟悉这两种语言对于编写高效程序至关重要。 3. **...

    大话存储——网络存储系统原理精解与最佳实践

    iSCSI是一种让SCSI命令通过TCP/IP网络进行传输的协议,而Fibre Channel则是高性能的网络协议,主要用于构建SAN。 在数据保护方面,快照、镜像、数据复制等是关键的概念。快照允许存储系统捕获特定时间点上的数据...

    TCP/IP原理,用于精解网络协议

    TCP/IP协议是互联网中最基础的通信协议之一,它定义了在网络中如何传输数据的规则。TCP,即传输控制协议,是TCP/IP协议族中的一个重要部分,主要负责在两台计算机之间建立可靠的数据传输连接。本篇文章将深入解析TCP...

Global site tag (gtag.js) - Google Analytics