HTTP详情

HTTP消息:一行或几行单行显示的消息头+一个强制空白行+消息主体

HTTP请求包:

  • 请求的第一行:三个字段以空格隔开,1. GET请求,没有消息实体,故消息头后无数据。2. 所请求的url。3. Http版本,目前大多数为1.1,还有1.0的。渗透测试唯一区别可能是1.1版本必须使用host请求头。

消息头:

  • Host:指出被访问url的主机名称
  • User-Agent:由于历史原因大多包含Mozilla前缀
  • Accept:浏览器支持的MIME(Multipurpose Internet Mail Extensions)类型,斜杠前面是type大类型,后面是subtype子类型。
  • Accept-Language:zh-ch:简体中文 zh:中文 q为权重系数
  • Referer:发出请求的原始URL(当初HTTP规范单词拼写错误,一直延续到现在)
  • Cookie:提交服务器向客户端发送的相关参数,之后客户端会带上cookie与服务端进行交互
  • Connnection:客户端与服务端的连接
  • 有时候还有:Accept-Encoding:压缩编码gzip、defalte
HTTP响应包:

  • 第一行:三个字段以空格隔开:1. Http版本 2. 状态码 3. 文本形式的“原因短句”

       状态码:100 continue:已收到请求消息头,将继续发送主体。

                   200 ok:成功提交。

                   201 created:put请求响应返回表示成功提交。

                   301 Moved Permanently:永久重定向到另一个在location中的url。

                   302 Found:暂时重定向。

                   304 Not Modified。

扫描二维码关注公众号,回复: 1515069 查看本文章

                   400 Bad Request:无效的HTTP请求。

                   401 Unauthorized:允许请求前要求HTTP身份验证。

                   403 Forbidden:禁止访问被请求资源。

                   404 Not Found:请求资源不存在。

                   405 Method Not Allowed:不支持请求中使用的方法。

                   413 Request Entity Too Large:请求主体过长,服务器无法处理。

                   414 Request URI Too Long:请求URL过长,服务器无法处理。

                   500 Internal Server Error:服务器执行请求遇到错误。

                   503 Service Unavailable:服务器访问的应用程序无法作出响应

响应头:

  • Server:Web服务器软件
  • 时间
  • 服务器 (Microsoft-IIS/6.0(2003) 7.0/7.5(2008)
  • X-powered-by:使用的语言
  • set-cookie
  • pragma:浏览器是否将响应保存在缓存中 expires:表示已经过期
  • content-length:消息头的长度
  • content-type
  • path
  • cache-control

HTTP方法:

  • GET:获取资源
  • POST:执行操作
  • TRACE:回显服务器收到的请求,主要用于测试或诊断
  • OPTIONS:要求服务器报告对某一特殊资源有效的http请求
  • PUT:试图使用包含在请求主体中的内容,向服务器上传指定的资源

编码:

url编码(对扩展ASCII字符集中任何有问题的字符进行编码,使其可通过HTTP安全传输):%3d表示= %25表示% %20表示空格 %0a表示新行 %00表示空字节

Unicode编码(与url类似,为通过HTTP传输):%u2215表示/ %u00e9 使用各种标准与畸形Unicode编码避开过滤。

Html编码(用于将问题字符并将其安全并入html文档的方案。主要在跨站脚本中发挥作用):&quot;表示" &apos;表示' &amp;表示& &lt;表示< &g:;表示>

Base64编码(常用于对电子邮件附件进行编码,使其通过smtp安全传输,还可用于在基本HTTP验证机制中对用户证书进行编码。最后输入数据块不能构成3块输出数据,就用一个或两个等号来补足输出)

猜你喜欢

转载自www.cnblogs.com/Phelaine/p/9152078.html