这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天
课上提到了http协议很多内容,对于一个计网基础相当不行的同学来说还是很痛苦的……就先总结一部分接触较多的内容吧,请求方法还是经常用到的,一般通过像axios、fetch等请求库进行封装后使用,但认清各种请求对日常使用来说还是会有很多理解上的方便的。
参考:HTTP 请求方法 - HTTP | MDN (mozilla.org)
POST
POST /index.html
曾经第一个接触的http请求便是post请求,当时要做一个表单组件,将数据传到后端进行处理,并得到响应信息。这个请求本身也是一般由html的表单数据来构建,包括数据内容和类型。其中类型可以参考MIME 类型 - HTTP | MDN (mozilla.org),它一般由form元素或button、input等元素进行设置。
GET
GET /index.html
这个请求自如其人,就是向服务器请求一些数据,比如获取一个静态页面。很简单……但也只能做到这些。
PUT
PUT /new.html HTTP/1.1
和POST请求类似,但它是“幂等”的,也就是发送多少次PUT请求结果都会一样,而POST重新发送多次返回结果就不一定。这个让我想起来Linux的mkdir命令
mkdir [-p] dirName
-p参数在没有该目录的情况下创建一个新目录。
DELETE
DELETE /file.html HTTP/1.1
用于指定删除某一服务器上资源。哦对,它也是“幂等”的。
以上四种请求其实类似数据库的改查增删,某种程度上可以偷懒,只是用post和get就都能实现。
CONNECT
CONNECT www.example.com:443 HTTP/1.1
这个请求会建立一个客户端到服务端的通道,使双方互相通信。建立好之后,双方就能在TCP协议上进行交流。
HEAD
HEAD /index.html
只是请求资源的头部信息,不会将正文内容包括,或者直接忽略正文。一般用来在下载什么东西之前提前判断其大小等信息,之后决定是否下载、如何下载。
OPTIONS
OPTIONS /index.html HTTP/1.1
OPTIONS * HTTP/1.1
该方法可以询问服务器或特定url所支持的通信选项,响应内容包括其所支持的选项信息。
PATCH
PATCH /file.txt HTTP/1.1
类似一个补丁,put请求会直接覆盖资源,而patch则会只修改一部分的资源内容。(根据我的理解,这可能在限定修改某些字段内容时会有很大的作用)
TRACE
TRACE /index.html
这个方法一般是用来测试客户端与服务端连接情况的,有时不清楚服务端所需请求的数据形式时可以提供帮助。
简单总结一下(水平太低,随便说说),一般常用的post, get, put, delete掌握好就能应对大部分实践情况了,其它一些虽不常用,但遇到特定场景下可以考虑用它去应对(比如提到的patch方法)