HTTP 消息结构

栏目: 后端 · 前端 · 发布时间: 8年前

内容简介:HTTP 消息结构

HTTP 是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。一个 HTTP “客户端”是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个 HTTP 的请求的目的。

一个 HTTP “服务器”同样也是一个应用程序(通常是一个 Web 服务,如 Apache Web 服务器或 IIS 服务器等),通过接收客户端的请求并向客户端发送 HTTP 响应数据。

HTTP 使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。一旦建立连接后,数据消息就通过类似 Internet 邮件所使用的格式 [RFC5322] 和多用途 Internet 邮件扩展(MIME)[RFC2045] 来传送。

客户端请求消息

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(方法-URI-协议/版本)、请求头部、空行和请求数据四个部分组成,下面是一个HTTP请求包(GET)的例子:

GET /index.php HTTP/1.1
Accept-Language: zh-cn
Connection: Keep-Alive
Host: 192.168.0.106
Content-Length: 37

userName=new_andy&password=new_andy
  • 请求包的第一行是方法-URI-协议/版本:GET 就是请求方法,根据 HTTP 标准,HTTP 请求可以使用多种请求方法。HTTP 1.1支持七种请求方法:GET、POST、HEAD、OPTIONS、PUT、delete 和 TRACE 等,常用的为请求方法是 GET 和 POST

  • /index.php 表示 URI, URI 指定了要访问的网络资源

  • HTTP/1.1 是协议和协议的版本

  • 最后一行 userName=new_andy&password=new_andy 为正文,正文与 HTTP 头部有一个空行(\r\n)分隔。这里需要说明的一点,其中 Content-Length 说明正文的长度,有的正文长度没有在头部说明,只是标明 Transfer-Encoding: chunked

请求包的头部还会包含许多有关客户端环境和请求正文的有用信息,这里不再描述,下图给出了请求报文的一般格式:

HTTP 消息结构

服务器响应消息

HTTP响应也由四个部分组成,分别是:状态行(协议-状态代码-描述)、响应头、空行和响应正文。下面是一个 HTTP 应答的例子:

HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Mon, 3 Jan 2005 13:13:33 GMT
Content-Type: text/html
Last-Modified: Mon, 11 Jan 2004 13:23:42 GMT
Content-Length: 90

<html>
<head>
<title>解读HTTP包示例</title>
</head>
<body>
Hello WORLD!
</body>
</html>

HTTP 应答包的第一行类似于 HTTP 请求的第一行,表示所用的协议是 HTTP 1.1,服务器处理请求的状态码 200。

应答头也和请求头一样包含许多有用的信息,例如服务器类型、日期时间、内容类型和长度等。应答的正文就是服务器返回的 HTML 页面。应答头和正文之间也用 CRLF 分隔,看下图分析:

HTTP 消息结构

HTTP 响应报文的主要特点

每一个请求报文发出后,都能收到一个响应报文,响应报文的第一行就是状态行。状态行包含三项内容:HTTP 的版本,状态码,以及解释状态码的简单语句。状态码都是三位数字的,分为 5 大类共 33 种。例如:

  • 1xx : 表示通知信息的,如请求收到了或正在进行处理

  • 2xx : 表示成功,如接受或是知道了

  • 3xx : 表示重定向,如要完成请求还必须采取下一步的行动

  • 4xx : 表示客户的差错,如请求中有错误的语法或不能完成

  • 5xx : 表示服务器的差错,如服务器失效无法完成请求


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web Analytics 2.0

Web Analytics 2.0

Avinash Kaushik / Sybex / 2009-10-26 / USD 39.99

The bestselling book Web Analytics: An Hour A Day was the first book in the analytics space to move beyond clickstream analysis. Web Analytics 2.0 will significantly evolve the approaches from the fir......一起来看看 《Web Analytics 2.0》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具