HTTP-Hypertext Transfer Protocol超文本传输协议

原文地址:http://www.buzzle.com/articles/http-hyper-text-transfer-protocol.html

本文描述了什么是HTTP(Hypertext Transfer Protocol,超文本传输协议)。

HTTP即超文本传输协议,下面先来了解一下什么是协议

协议定义了计算机间彼此是如何通信的。协议包含了一系列规则和过程,计算机在使用协议进行消息收发时,必须满足协议中所描述的规则和过程。最常见的协议包括HTTP、SMTP、FTP、IMAP、POP3等。

HTTP介绍

HTTP定义:
由于协议是网络通信的一系列的规则和过程,而HTTP是一个协议,因此TTP本身就是一系列用于万维网通信的规则和过程。

万维网(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force, IETF) 协同来开发HTTP。其最初的目的是铍铜一种获取和发布HTML文档的方法。HTTP位于TCP/IP模型的应用层(第五层)。HTTP客户端通过HTTP协议向HTTP服务器发送请求,HTTP服务器处理这些请求。向Web服务器发送请求的客户端即用户代理,典型的客户端包括Web浏览器、所有引擎蜘蛛、Web应用等。


HTTP客户端和服务器通信

HTTP客户端(例如Web浏览器)一般通过80端口连接到HTTP服务器。HTTP服务器对请求进行解释,对请求进行处理,并向HTTP客户端做出相应(如果有必要的话)。 

HTTP请求消息的典型内容包括:

  • 请求行
  • HTTP头
  • 空行 
  • 消息体(可选)
HTTP客户端请求方法 
  • HEAD
    该方法用于与下面的GET方法类似,不同之处在于服务区相应HEAD方法时,不包含消息体。
  • GET
    该方法用于从Web服务器获取资源。Get方法是一种很常用的方法。
  • POST
    该方法向Web服务器提交要处理的数据。在我们提交Web表单时,会调用POST方法。
  • PUT
    该方法向HTTP服务器上传特定的资源。
  • DELETE
    该方法删除Web服务器上的特定资源。
  • TRACE
    服务器通过相应该方法来让HTTP客户端知道服务器是否可用。
  • OPTIONS
    该方法用来确定服务器端支持的功能,例如服务器支持哪些方法。
  • CONNECT
    该方法用来将请求连接转换为透明的TCP/IP隧道,用来通过没有加密的HTTP代理来实现SSL(Secure Socket  Layer)通信(HTTPS)。
  • HTTP响应状态代码

    HTTP相应 是由Web服务器做出的。HTTP相应意味着回复、结果、或对客户端请求的相应。下面列出了服务器相应状态代码-

    1xx - 信息
    • 100 - Continue
    • 101 - Switching protocols
    • 102 - Processing (WebDAV)

     2xx - 成功

    • 200 - Ok
    • 201 - Created
    • 202 - Accepted
    • 203 - Non-Authoritative Information
    • 204 - No Content
    • 205 - Reset Content
    • 206 - Partial Content
    • 207 - Multi-Status (WebDAV)

    3xx - 重定向

    • 300 - Multiple Choices
    • 301 - Moved Permanently
    • 302 - Not found
    • 303 - See Other
    • 304 - Not Modified
    • 305 - Use Proxy
    • 306 - Switch Proxy
    • 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
    • 415 - Unsupported Media Type
    • 416 - Requested Range not satisfiable
    • 417 - Expectation Failed
    • 422 - Unprocessable Entity (WebDAV)
    • 423 - Locked (WebDAV)
    • 424 - Failed Dependency (WebDAV)
    • 425 - Unordered Collection
    • 426 - Upgrade Required
    • 449 - Retry With

    5xx - 服务器端错误

    • 500 - Internal Server Error
    • 501 - Not Implemented
    • 502 - Bad Gateway
    • 503 - Service Unavailable
    • 504 - Gateway Timeout
    • 505 - HTTP Version Not Supported
    • 506 - Variant Also Negotiates
    • 507 - Insufficient Storage (WebDAV)
    • 509 - Bandwidth Limit Exceeded
    • 510 - Not Extended

    一个简单的HTTP通信场景

    1. HTTP客户端发起与Web服务器的链接,然后向服务器发送一个请求方法。

    HTTP-Hypertext Transfer Protocol超文本传输协议_第1张图片

    2. HTTP服务器处理客户端的请求,同时客户端等待服务器的相应。

    HTTP-Hypertext Transfer Protocol超文本传输协议_第2张图片

    3. Web服务器向客户端响应状态码数据(如果可用的话),然后关闭连接。译者注:原文可能基于1.0,在HTTP1.1中,连接可以是持续的。

    HTTP-Hypertext Transfer Protocol超文本传输协议_第3张图片

    By Amol Vyavhare

  • 你可能感兴趣的:(HTTP-Hypertext Transfer Protocol超文本传输协议)