常见请求方法
请求方法的本质
请求方法是请求行的第一个单词,它向服务器描述了客户端发出请求的动作类型,虽然可以自定义请求方法,但一般不这么做
fetch('http://xxxx',{
method:'TEST'
})
客户端和服务端,约定俗成规定了一些常见的请求方法
- GET ,表示向服务器获取资源,业务数据在请求行中,无需请求体
- POST,表示向服务器提交信息,通常用于创建新的数据,业务数据包含在请求体中
- PUT,表示希望修改服务器的数据 ,通常用于修改数据,业务数据包含在请求体中
- DELETE,表示希望删除服务器的数据 ,业务数据在请求行中,无需请求体
- OPTIONS,发生在跨域的预检请求中,表示客户端向服务器申请跨域提交
- TRACE,回显服务器收到的请求,主要用于测试和诊断
- CONNECT,用于建立连接管道,通常在代理场景中使用,网页中很少用到
GET 和 POST的区别
本质上没有什么区别,只有语义上的区别
浏览器和服务器约定俗称的规则,造成了GET POST 之间的区别
-
发送GET,不附带请求体
-
GET 请求传递的信息量有限,POST则没有限制
- 浏览器对请求行做了大小限制(4k),请求体则没有限制
-
GET 只能传递ASCII数据,遇到非ASCII需要进行编码,POST没有限制
- 浏览器对请求行、请求头做了限制
-
大部分GET请求传递的数据都附带在path参数中,能够通过分享地址完整的重现页面,,但同时 也暴露了数据,有泄露隐私的风险
-
刷新页面,若当前页面是通过POST得到的,则浏览器会提示用户是否重新提交(开发模式下无效),GET则无
-
GET 请求的地址可以被保存为浏览器书签,POST不可以