请求方法
2023年12月23日
一、认识
方法 | 描述 | 特点 |
---|---|---|
GET | 请求指定的页面信息,并返回实体主体。 | |
HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 | |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 | |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 | |
DELETE | 请求服务器删除指定的页面。 | |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 | |
OPTIONS | 允许客户端查看服务器的性能。 | |
TRACE | 回显服务器收到的请求,主要用于测试或诊断。 | |
PATCH | 实体中包含一个表,表中说明与该URI所表示的原内容的区别。 | |
MOVE | 请求服务器将指定的页面移至另一个网络地址。 | |
COPY | 请求服务器将指定的页面拷贝至另一个网络地址。 | |
LINK | 请求服务器建立链接关系。 | |
UNLINK | 断开链接关系。 | |
WRAPPED | 允许客户端发送经过封装的请求。 | |
Extension-mothed | 在不改动协议的前提下,可增加另外的方法。 |
二、问题
2.1 Get 和 Post 的区别
- GET 在浏览器回退时是无害的,而 POST 会再次发起请求
- 从缓存角度看,GET 请求后浏览器会主动缓存,POST 默认情况下不能。
- 从参数角度来看,GET请求一般放在URL中,因此不安全,POST请求放在请求体中,相对而言较为安全,但是在抓包的情况下都是一样的。
- 从编码角度看,GET请求只能经行URL编码,只能接受ASCII码,而POST支持更多的编码类型且不对数据类型限值。
- GET请求幂等,POST请求不幂等,幂等指发送 M 和 N 次请求(两者不相同且都大于1),服务器上资源的状态一致。
- GET请求会一次性发送请求报文,产生一个TCP数据包;POST请求通常分为两个TCP数据包,首先发 header 部分,如果服务器响应 100(continue), 然后发 body 部分。
2.2options 方法有什么用
OPTIONS请求与HEAD类似,一般也是用于客户端查看服务器的性能。
- 这个方法会请求服务器返回该资源所支持的所有 HTTP 请求方法,该方法会用'*'来代替资源名称,向服务器发送 OPTIONS 请求,可以测试服务器功能是否正常。
- JS 的 XMLHttpRequest对象进行 CORS 跨域资源共享时,对于复杂请求,就是使用 OPTIONS 方法发送嗅探请求,以判断是否有对指定资源的访问权限。