美文网首页
如何理解HTTP协议中的请求方法

如何理解HTTP协议中的请求方法

作者: dashingqi | 来源:发表于2022-05-23 09:30 被阅读0次
    Android_Banner.jpg

    背景

    HTTP协议设计时是要构建一个超链接文档系统,通过URI来定位这些文档;在协议中要操作这些资源需要【某种动作的指使】告知这些资源的方式;

    【请求方法】就这么诞生了;

    【请求方法】可以这么理解,就是客户端发送了一个指令,要求服务端对URI对应的资源执行这个操作;

    请求方法分类

    共8种,单词都是大写的

    • GET:获取资源
    • HEAD:获取资源的元信息
    • POST:向资源提交数据,相当于上传数据
    • PUT:和POST很像
    • DELETE:删除资源
    • CONNECT:建立特殊的连接通道
    • OPTIONS:列出可对资源实行的方法
    • TRACE:追踪请求-响应的传输路径

    其中常用的是 GET、POST、HEAD、PUT

    GET/HEAD

    GET

    GET方法从HTTP/0.9 版本出现一直保存至今,也是里面最知名的方法了,是我们日常工作中使用很频繁的方法;

    作用

    从服务器中获取资源,该【资源】可以是静态的文本、图片、视频也可以是由PHP、Java动态生成的页面;

    HEAD

    作用与GET很相似,从服务器获取资源;

    服务器对于HEAD方法的请求处理机制时一样,但是有一点,是不会返回实体数据,只会返回响应头,也就是资源对应的【元信息】

    用于并不需要资源的场合,避免传输body数据的浪费

    example

    • 想要检查一个文件是否存在,只要发个HEAD请求就可以,没必要使用GET请求把整个文件都获取下来;
    • 要检查文件是否有最新版本,同样也应该使用HEAD,服务器会把文件的修改时间在响应头中回传回来;

    POST/PUT

    GET/HEAD都是从服务器中获取数据,而POST/PUT则与其相反是往指定的URI资源中提交数据,提交的数据都是放在报文的body中;

    POST

    通常POST表示的是“新建”create的含义

    PUT

    PUT是【修改】【update】的含义

    在实际应用中,PUT用到很少,并且它与POST在语义以及功能上都是太相近了,在有的服务器中直接禁止使用PUT方法,只使用POST方法进行数据的上传;

    安全与幂等

    安全

    是指请求方法不会【破坏】服务器上的资源,也就是不会对服务器上的资源造成实质的修改

    按照这个规定【GET/HEAD】方法是安全,因为这哥俩是【只读】操作;

    而【POST/PUT/DELETE】操作会修改服务器上资源,所以是【不安全】

    幂等

    大概意思就是 多次执行相同操作,结果也都是相同的,

    这么看【GET/HEAD】即是安全也是幂等的;

    DELETE可以多次删除同一个资源,效果都是资源不存在了,也是幂等的;

    对于POST来说,每一次POST都是会创建一个资源,所以不是幂等

    而对于PUT来说,每一次PUT都是更新一下对应资源,所以是幂等的;

    相关文章

      网友评论

          本文标题:如何理解HTTP协议中的请求方法

          本文链接:https://www.haomeiwen.com/subject/wicrprtx.html