HTTP各种请求方式报文概述

105 阅读4分钟

HTTP

  • ask确认 syn同步 报文

  • user:pass@www.wangjing.com:8080/dir/index.h…

    协议方案名://登录信息(认证)@服务器地址:端口号/带层次的文件路径?参数#片段标识符

    • user:pass-登录信息(认证):可选项,指定用户名和密码作为从服务器端获取资源时必要的登录信息
    • #ch1-片段标识符:可选项,标记以获得资源中的子资源
  • GET请求:

    请求GET /index.html HTTP/1.1 Host:www.baidu.com If-Modified-Since:Thu,12 Jul 2012 07:30:00 GMT
    响应仅返回2012年7月12日7点30分以后更新过的index.html页面资源。 如果未有内容更新,则一状态码304 Not Modified作为响应返回
  • POST

    请求POST /index.html HTTP/1.1 Host:www.baidu.com Coutent-length:1560 (1560字节的数据)
    响应返回submit.cgi接收数据的处理结果

    post请求有安全验证,put请求没有安全验证

  • PUT

    请求PUT /index.html HTTP/1.1 Host:www.baidu.com Content-length:1560 (1560字节的数据) Content-Type:text/html
    响应响应返回状态码204 No Content (比如:该html已存在于服务器上)
  • HEAD

    请求HEAD /index.html HTTP/1.1 Host:www.baidu.com
    响应返回index.html有关的响应首部
  • DELETE

    请求DELETE /index.html HTTP/1.1 Host:www.baidu.com
    响应响应返回状态码204 No Content (比如:该html已从该服务器上删除)
  • OPTIONS(查询针对请求URI指定的资源的方法 GTE....)

    请求OPTIONS /index.html HTTP/1.1 Host:www.baidu.com
    响应HTTP/1.1 200 OK Allow:GET,POST,HEAD,OPTIONS 返回服务器支持的方法
  • TRACE(追踪路径)

    发送请求时,在Max-Forwords首部字段中填入数值,每经过一个服务器端就将该数字减一,当数值刚好减到0时就停止传输,最后返回200

    客户端通过TRACE方法可以查询发送出去的请求时怎么被加工修改/篡改的,可以监控一些代理中转

    一般不用,会引起XST攻击

    XST 的全称是 Cross-Site Tracing,中文译作“跨站式追踪攻击”。具体而言,是客户端发 TRACE / TRACK 请求至服务器,如果服务器按照标准实现了 TRACE / TRACK 响应,则在 response body 里会返回此次请求的完整头信息。通过这种方式,客户端可以获取某些敏感的 header 字段,例如 httpOnly 的 Cookie 等。

    请求TRACE / HTTP1.1 Host:www.baidu.com Max-Forwards:2
    响应HTTP/1.1 200 OK Content-Type:message/http Content-Length:1024 TRACE / HTTP/1.1 Host:www.baidu.com Max-Forwords:2
  • CONNECT(要求用隧道协议链接代理)

    一般不用在网页开发中,一般由服务器发出,而且服务器必须要对CONNECT响应经行监听

    CONNECT方法要启用在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信

    请求CONNECT proxy.com HTTP/1.1 Host: proxy.com
    响应HTTP/1.1 200 OK (之后进入网络隧道)
  • 响应报文(服务器端生成Cookie信息后响应的报文)

    HTTP/1.1 200 OK
    Date: Thu, 12 Jul 2012 07:12:20 GMT
    Server: Apache
    <Set-Cookie: sid=1342077140226724;path=/; expires=Wed,=>10-Oct-12 07:12:20 GMT>
    Content-Type: text/plain; charset=UTF-8
    
  • 请求报文(自动发送保存着的Cookie信息)

    GET /image/index.html HTTP/1.1
    Host: www.baidu.com
    Gookie: sid=1342077140226724
    
  • 获取部分内容的范围请求

    请求

    GET /tip.jpg HTTP/1.1
    Host: www.baidu.com
    Range: bytes = 5001-10000 
    或者 
    Range:5001- 这样表示5001字节之后的全部
    或者
    Range:0-3000, 5000-7000 多重范围 
    当多重范围请求时,响应的就会加一个 
    Centent-Type:multipart/byteranges 多部份字节
    

    响应

    HTTP/1.1 206 Partial Content 局部内容
    Date: Fri, 13 Jul 2012 04:39:17 GMT
    Content-Range: bytes 5001-10000/10000 
    Content-Length: 5000
    Content-Type: image/jpeg
    

    如果服务器端无法响应范围请求,则会返回状态码200OK和完整的实体内容

状态码

状态码类别原因短语
1xxinformational(信息性状态码)接受的请求正在处理
2xxSuccess(成功状态码)请求正常处理完毕
3xxRedirection(重定向状态码)需要进行附加操作以完成请求
4xxClient Error(客户端错误状态码)服务器无法处理请求
5xxServer Error(服务器错误状态码)服务器处理请求出错