• HTTP请求和响应2:方法(Method)


    方法表明了client希望server对资源运行的动作。经常使用的方法包含:GET、HEAD、POST、PUT、TRACE、OPTIONS和DELETE,每一个server能够实现这些方法中的部分或者所有。以下将对这些方法做一个具体的介绍。

    GET

    通经常使用于请求server发送某个资源。HTTP/1.1要求server必须实现该方法,以下是一个HTTP请求:
    GET /seasonal/index-fall.html HTTP/1.1
    Host: www.joes-hardware.com
    Accept: *
    响应报文例如以下:
    HTTP/1.1 200 OK
    Content-Type: text/html
    Context-Length: 617
    
    //body

    HEAD

    HEAD和GET类似,仅仅是server的响应中仅仅返回首部(没有实体部分),一般用于:
    1)在不获取资源的情况下了解资源的状况。
    2)通过查看响应中的状态码,看看某个对象是否存在;
    3)通过查看首部。測试资源是否被改动了。


    HEAD返回的首部应该和GET返回的首部全然同样。

    PUT

    向server写入文档。就是让server用请求的主体部分来创建一个由所请求的URL命名的新文档,或者假设那个URL已经存在的话,就用这个主体来替代它。
    请求报文:
    PUT /product-list.txt HTTP/1.1
    Host: www.joes-hardware.com
    Content-type: text/plain
    Content-length: 34
    
    //body
    响应报文:
    HTTP/1.1 201 Created
    Location: http://www.joes-hardware.com/product-list.txt
    Content-type: text/plain
    Context-length: 47
    
    http://www.joes-hardware.com/product-list.txt

    POST

    POST通经常使用来支持HTML的表单,表单中填好的数据被发送到server。server将其交给相应的程序进行处理。
    请求报文:
    POST /inventory-check.cgi HTTP/1.1
    Host: www.joes-hardware.com
    Content-type: text/plain
    Content-length: 18
    
    item-bandsaw 2647
    服务端交由相应程序处理后,发送响应报文:
    HTTP/1.1 200 OK
    Content-type: text/plain
    Context-length: 37
    
    The bandsaw model 2647 is in stock!

    TRACE

    client发起一个请求,请求可能会穿过防火墙、代理、网关或其它一些应用程序。每一个中间节点都可能会改动原始的HTTP请求。

    TRACE请求会在目地server端发起一个“环回”诊断,行程最后一站的server会弹回一条TRACE响应,并在响应主体中带上收到的原始请求报文。这样client能够诊断原始报文是否被改动过。
    请求报文:

    TRACE /product-list.txt HTTP/1.1
    Accept:*
    Host: www.joes-hardware.com
    报文经过代理server后:
    TRACE /product-list.txt HTTP/1.1
    Host: www.joes-hardware.com
    Accept: *
    Via: 1.1 proxy3.company.com
    server弹回的TRACE响应:
    HTTP/1.1 200 OK
    Content-type: text/plain
    Content-length: 96
    
    TRACE /product-list.txt HTTP/1.1
    Host: www.joes-hardware.com
    Accept: *
    Via: 1.1 proxy3.company.com
    TRACE响应经过代理server后:
    HTTP/1.1 200 OK
    Content-type: text/plain
    Content-length: 96
    Via: 1.1 proxy3.company.com
    
    TRACE /product-list.txt HTTP/1.1
    Host: www.joes-hardware.com
    Accept: *
    Via: 1.1 proxy3.company.com
    TRACE方法主要用于诊断。它基本的缺陷是它假定中间应用程序对各种不同类型请求(GET、HEAD、POST等)的处理都是同样的,假设实际情况不同,那么诊断将不准确。


    OPTIONS

    OPTIONS方法请求Webserver告知其支持的各种功能,这为client应用程序提供了一种手段。使其不用实际訪问那些资源就能判定訪问各种资源的最优方式。
    请求报文:
    OPTIONS * HTTP/1.1
    Host: www.joes-hardware.com
    Accept: *
    响应报文:
    HTTP/1.1 200 OK
    Allow: GET, POST, PUT, OPTIONS
    Context-length: 0

    DELETE

    DELETE方法用于请server删除请求URL所指定的资源。


    请求报文:

    DELETE /product-list.txt HTTP/1.1
    Host: www.joes-hardware.com
    响应报文:
    HTTP/1.1 200 OK
    Content-type: text/plain
    Content-length: 54
    
    //响应消息

    扩展方法

    HTTP被设计成字段可扩展的,扩展方法指的是没有在HTTP/1.1中定义的方法,这些方法为开发人员提供了一种扩展这些HTTP服务能力的手段。



  • 相关阅读:
    【GitHub】上传代码通用操作等(附下载单个文件夹或文件)
    【Git】之分支合并命令
    【FFmpeg】之Mac系统爬取所有M3U8视频下载方法
    i2c超时
    linux下串口调试
    cgminer分析
    i2c驱动理解
    STM32(三十七)SPI读取W25Q128flash的厂商ID、设备ID以及读写数据(硬件SPI)
    驱动静态和动态加载
    I2C基本原理及对I2C Adapter的理解
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7259009.html
Copyright © 2020-2023  润新知