面试题 -- HTTP 的几种请求方法用途?
# HTTP 的请求方法
GET POST HEAD PUT DELETE OPTIONS TRACE CONNECT PATCH
HTTP简介:HTTP菜鸟教程 (opens new window)
方法及用途
GET方法 HTTP1.0:
发送一个请求从服务器上获得某一资源。
1. 获取用户名密码。
2. 从服务器下载文本、图片、音视频等时获取服务器资源。
POST方法 HTTP1.0:
向 URL 指定的资源提交数据或附加新的数据。
1. 提交用户注册信息。
2. 提交修改的用户信息。
HEAD方法 HTTP1.0:
该方法只请求页面的首部。
1. 向服务器获取某些易过期或丢失大型文件时,可用HEAD方式查询资源是否存在。
PUT方法 HTTP1.1:
跟 POST 方法很像,也是想服务器提交数据。
但是,它们之间有不同。PUT 指定了资源在服务器上的位置,而 POST 没有。POST的数据存放位置由服务器自己决定。
- 极少使用。
DELETE方法 HTTP1.1:
从服务器上删除某资源。
- 极少使用。
OPTIONS方法 HTTP1.1:
它用于获取当前URL所支持的方法。如果请求成功,会有一个 Allow 的头包含,类似 GET , POST 这样的信息。
- 极少使用。
TRACE方法 HTTP1.1:
用于激发一个远程的,应用层的请求消息回路。
- 极少使用。
CONNECT方法 HTTP1.1:
把请求连接转换到透明的 TCP/IP 通道。
- 极少使用。
PATCH方法 HTTP1.1:
是对 PUT 方法的补充,用来对已知资源进行局部更新。
- 极少使用
通常大家都根据HTTP请求方法的不同,对应数据库中CRUD操作,来实现REST API的。
# GET 方法和 POST 方法的本质区别?
''''
用途不同:
GET方法用于信息获取,它携带的数据应该是安全的(安全:指非修改信息,如数据库方面的信息),而POST方法是用于修改服务器上资源的请求。传递数据方式不同:
GET请求的数据会附在 URL 之后,而POST方法提交的数据则放置在HTTP报文实体的主体里,所以POST方法的安全性比GET方法要高。传递数据量大小限制:
GET请求,没有请求体,所有参数都是拼接到 URL 尾部,URL本身对于数据没有限制,但是不同的浏览器对 URL 的长度是有限制的,一般是2KB-8KB左右。POST请求,如果form表单提交的方式为POST,则表单项的数据以请求体的形式发送给服务器,没有大小限制。