HTTP——HTTP请求

    所有 HTTP 消息(请求与响应)中都包含一个或几个单行显示的消息头(header),然后是一个强制空白行,最后是消息主体(可选)。以下是一个典型的 HTTP 请求:

 

POST /search.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www.ip138.com:8080/search.asp
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded..Accept-Encoding: gzip, deflate
User_Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: www.ip138.com:8080
Content-Length: 28
Connection: Keep-Alive
Cookie: Cache-Control: no-cache

mobile=1340532&action=mobil

     每一个HTTP请求的第一行都由3个以空格间隔的项目组成。

  • 一个说明 HTTP 方法的动词。最常用的方法为 GET ,它的主要作用是从 Web 服务器获取一个资源。GET 请求并没有消息主体,因此在消息头后的空白行中没有其他数据。
  • 所请求的URL。该URL通常由所请求的资源名称,以及一个包含客户端向资源提交的参数的可靠查询字符串组成。在该 URL 中,查询字符串以 ? 字符标识。
  • 使用的 HTTP 版本。因特网上常用的HTTP 版本为1.0和1.1,多数浏览器默认使用1.1版本。这两个版本的规范之间存在一些差异;然而,当攻击 Web 应用程序时,渗透测试员可能唯一差异是1.1版本必须使用 Host 请求头。
    请求示例中的其他一些要点如下。
  • Referer 消息头用于表示发出请求的原始 URL (例如,因为用户单击页面上的一个链接)。请注意,在最初的 HTTP 规范中,这个消息头存在拼写错误,并且这个错误一直保留了下来。
  • User-Agent 消息头提供与浏览器或其他生成请求的客户端软件有关的信息。请注意,由于历史原因,大多数浏览器中都包含 Mozilla 前缀。这是因为最初占支配地位的 Netscape 浏览器使用了 User-Agent 字符串,而其他浏览器也希望让 Web 站点相信它们与这种标准兼容。与计算领域历史上的许多怪异现象一样,这种现象变得很普遍,即使当前版本的 Internet Explorer也保留了这一做法,示例的请求即由 Internet Explorer 提出。
  • Host 消息头用于指定出现在被访问的完整 URL 中的主机名称。如果几个 Web 站点以相同的一台服务器为主机,就需要使用 Host 消息头,因为请求第一行中的 URL 内通常并不包含主机名称(参阅虚拟主机Web站点有关的信息)。
  • Cookie 消息头用于提交服务器向客户端面发布的其他参数。

你可能感兴趣的:(web安全 http)