码迷,mamicode.com
首页 > Web开发 > 详细

http协议和状态码摘要

时间:2016-08-14 11:34:00      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:

HTTP协议,即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和万维网(WWW即World Wide Web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

特点

HTTP协议的主要特点可概括如下:

  1. 支持客户/服务器模式。支持基本认证和安全认证。
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  4. HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。HTTP 1.1使用持续连接:不必为每个web对象创建一个新的连接,一个连接可以传送多个对象。
  5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

工作流程

一次HTTP操作称为一个事务,其工作过程可分为四步:

  1. 首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。
  2. 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
  3. 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
  4. 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
    如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。

头域

每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。

*请求信息

发出的请求信息格式如下:

  • 请求行 - 例如GET /images/logo.gif HTTP/1.1,表示从/images目录下请求logo.gif这个文件。
  • 请求头 - 例如Accept-Language: en
  • 空行
  • 可选的消息体 - 请求行和标题必须以<CR><LF>作为结尾(也就是,回车然后换行)。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。

*请求方法

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:

  • OPTIONS - 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求来测试服务器的功能性。
  • HEAD- 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。该方法常用于测试超链接的有效性,是否可以访问,以及最近是否更新。
  • GET - 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app中。其中一个原因是GET可能会被网络蜘蛛等随意访问。
  • POST - 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT - 向指定资源位置上传其最新内容。
  • DELETE - 请求服务器删除Request-URI所标识的资源。
  • TRACE- 回显服务器收到的请求,主要用于测试或诊断。
  • CONNECT - HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
  • PATCH - 用来将局部修改应用于某一资源,添加于规范RFC5789。

*响应信息

客户端向服务器发送一个请求,服务器以一个状态行作为响应,响应的内容包括:消息协议的版本、成功或者错误编码、服务器信息、实体元信息以及必要的实体内容。根据响应类别的类别,服务器响应里可以含实体内容,但不是所有的响应都有实体内容。

*响应头域

服务器需要传递许多附加信息,这些信息不能全放在状态行里。因此,需要另行定义响应头域,用来描述这些附加信息。响应头域主要描述服务器的信息和Request-URI的信息。

*http常见的请求头

  • If-Modified-Since
  • If-None-Match
  • Pragma
  • Cache-Control
  • Accept
  • Accept-Encoding
  • Accept-Language
  • Accept-Charset
  • User-Agent
  • Content-Type
  • Referer
  • Connection
  • Host
  • Cookie
  • Content-Length
  • Authorization
  • UA-Pixels,UA-Color,UA-OS,UA-CPU
  • From
  • Range

*http常见的响应头

  • Allow
  • Date
  • Expires
  • P3P
  • Set-Cookie
  • ETag
  • Last-Modified
  • Content-Type
  • Content-Range
  • Content-Length
  • Content-Encoding
  • Content-Language
  • Server
  • X-AspNet-Version
  • X-Powered-By
  • Connection
  • Location
  • Refresh
  • WWW-Authenticate

状态码

  • 1XX 信息提示状态码
    • 100 Continue(继续)
    • 101 Switching Protocols(切换协议)
  • 2XX 成功状态码
    • 200 OK
    • 201 Created(已创建)
    • 202 Accepted(已接受)
    • 203 Non-Authoritative Information(非权威信息)
    • 204 No Content(没有内容)
    • 205 Reset Content(重置内容)
    • 206 Partial Content(部分内容)
  • 3XX 重定向状态码
    • 300 Multiple Choices(多项选择)
    • 301 Moved Permanently(永久移除)
    • 302 Found(已找到)
    • 303 See Other(参见其他)
    • 304 Not Modified(未修改)
    • 305 Use Proxy(使用代理)
    • 306 未使用
    • 307 Temporary Redirect(临时重定向)
  • 4XX 客户端错误状态码
    • 400 Bad Request(坏请求)
    • 401 Unauthorized(未授权)
    • 402 Payment Required(要求付款)
    • 403 Forbidden(禁止)
    • 404 Not Found(未找到)
    • 405 Method Not Allowed(不允许使用的方法)
    • 406 Not Acceptable(无法接受)
    • 407 Proxy Authentication Required(要求进行代理认证)
    • 408 Request Timeout(请求超时)
    • 409 Conflict(冲突)
    • 410 Gone(消失了)
    • 411 Length Required(要求长度指示)
    • 412 Precondition Failed(先决条件失败)
    • 413 Request Entity Too Large(请求实体太大)
    • 414 Request URI Too Long(请求URI太长)
    • 415 Unsupported Media Type(不支持的媒体类型)
    • 416 Requested Range Not Satisfiable(所请求的范围未得到满足)
    • 417 Expectation Failed(无法满足期望)
  • 5XX 服务器错误状态码
    • 500 Internal Server Error(内部服务器错误)
    • 501 Not Implemented(未实现)
    • 502 Bad Gateway(网关故障)
    • 503 Service Unavailable(未提供此服务)
    • 504 Gateway Timeout(网关超时)
    • 505 HTTP Version Not Supported(不支持的HTTP版本)

http协议和状态码摘要

标签:

原文地址:http://www.cnblogs.com/nzbin/p/5751328.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!