美文网首页
HTTP请求头详解

HTTP请求头详解

作者: ProZoom | 来源:发表于2017-09-08 13:45 被阅读267次

HTTP请求头详解

HTTP由两部分组成:

  • 请求(Request)
  • 响应(Response)

当你在Web浏览器中输入一个URL时,浏览器将根据你的要求创建并发送请求,该请求包含所输入的URL以及一些与浏览器本身相关的信息。当服务器收到这个请求时将返回一个响应,该响应包括与该请求相关的信息以及位于指定URL(如果有的话)的数据。直到浏览器解析该响应并显示出网页(或其他资源)为止。

HTTP请求

格式:
<request-line>
<headers>
<blank line>
[<request-body>]
格式说明:
  • 第一行必须是一个请求行(request-line),用来说明请求类型,要访问的资源以及所使用的HTTP版本.
  • 一个首部(header)小节,用来说明服务器要使用的附加信息.
  • 一个空行
  • 可以添加任意的其他数据[称之为主体(body)]
案例:
Get:
GET / HTTP/1.1
Accept: */*
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: www.google.cn
Connection: Keep-Alive
<空行>

说明:

第一部分说明了该请求是一个GET请求.该行的第二部分是一个斜杠(/),用来说明请求的是该域名的根目录.该行的最后一部分说明使用的是HTTP1.1版本(另一个可选荐是1.0).

第2行是请求的第一个首部

- HOST将指出请求的目的地.
- User-Agent,服务器端和客户端脚本都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义,并且在每个请求中自动发送.
- Connection,通常将浏览器操作设置为Keep-Alive

第三部分,空行,即使不存在请求主体,这个空行也是必需的.


Post:
POST / HTTP1.1
Host:www.wrox.com
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Content-Type:application/x-www-form-urlencoded
Content-Length:40
Connection: Keep-Alive

name=Professional%20Ajax&publisher=Wiley

说明:
  • 请求行开始处的GET改为POST,以表示不同的请求类型.
  • Content-Type说明了请求主体的内容是如何编码的.浏览器始终以application/x-www-form-urlencoded的格式编码来传送数据,这是针对简单URL编码的MIME类型
  • Content-Length说明了请求主体的字节数.
  • 最后请求主体.名称-值对的形式.

HTTP响应

格式:
<status-line>
<headers>
<blank line>
[<response-body>]
格式说明:
  • 第一行必须是一个请求行(request-line),用来说明请求类型,要访问的资源以及所使用的HTTP版本.
  • 一个首部(header)小节,用来说明服务器要使用的附加信息.
  • 一个空行
  • 可以添加任意的其他数据[称之为主体(body)]
案例:
HTTP/1.1 200 OK
Date: Sat, 31 Dec 2005 23:59:59 GMT
Content-Type: text/html;charset=ISO-8859-1
Content-Length: 122

<html>
    <head>
        <title>Wrox Homepage</title>
    </head>
    <body>
        <!-- body goes here -->
    </body>
</html>

在响应中唯一真正的区别在于第一行中用状态信息代替了请求信息。状态行(status line)通过提供一个状态码来说明所请求的资源情况。最常用的状态码有:

  • 200 (OK): 找到了该资源,并且一切正常。
  • 304 (NOT MODIFIED): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。
  • 401 (UNAUTHORIZED): 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。
  • 403 (FORBIDDEN): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。
  • 404 (NOT FOUND): 在指定的位置不存在所申请的资源。

相关文章

网友评论

      本文标题:HTTP请求头详解

      本文链接:https://www.haomeiwen.com/subject/xfigjxtx.html