【HTTP协议】请求行

请求行结构

请求行(request-line)由请求方法(method)、 请求对象(request-target)、 HTTP版本(HTTP-version)构成
格式如下:

request-line = method <SP> request-target <SP> HTTP-version <CRLF>

请求方法(method)

  • 常见方法

    1. GET 主要获取信息的方法,幂等方法
    2. HEAD 用于获取HEAD元数据,幂等方法
    3. POST 用于提交FORM表单,新增资源等
    4. PUT 更新资源,带条件时是幂等方法
    5. DELETE 删除资源,幂等方法
    6. CONNECT 建立tunnel隧道
    7. OPTIONS 显示服务器对访问资源的支持方法,幂等方法
    8. TRACE 回显服务器收到的请求,有安全风险

  • WEBDAV方法

    1. PROPFIND 从Web资源钟检索以XML格式存储的属性。他也被重载,以允许一个检索远程系统的集合结构(也叫目录层次结构)
    2. PROPPATCH 在单个原子性动作中更改和删除资源的多个属性
    3. MKCOL 创建集合或者目录
    4. COPY 将资源从一个 URI 复制到另一个
    5. MOVE 将资源从一个 URI 移动到另一个 URI
    6. LOCK 锁定一个资源。 WebDAV支持共享锁和互斥锁
    7. UNLOCK 解除资源的锁定

请求对象(request-target)

  1. origin-formabsolute-path["?"query] 向origin server发起的请求,path为空时必须传递/

    GET /where?q=now HTTP/1.1

  2. absolute-formabsolute-URI 仅用于向正向代理proxy发起请求时,详见正向代理与隧道

    GET http://www.example.org/pub/WWW/TheProject.html HTTP/1.1

  3. authority-formauthority 仅用于CONNECT方法

    CONNECT www.example.com:80 HTTP/1.1

  4. asterisk-form"*" 仅用于OPTIONS方法

    OPTIONS * HTTP/1.1


HTTP版本(HTTP-version)