HTTP请求方法的区别-计网(2)
Date:
HTTP 提供了几种请求方法,有时候发现POST和GET好像可以解决所有问题,HTTP Method 是规定?规范?还是约定俗成?
目录
HTTP:不同请求方法的区别
请求方法向服务器描述了客户端发出请求的动作类型。
HTTP只是协议,不同请求方法只是在语义层面有区别,但服务器和浏览器通常有一些约定俗成的规范行为,使得不同请求方法区别很大。
请求方法也是可以自定义的,只需要改Header里的method,但是一般不会这么用😂
- GET: 请求资源,无需请求体
- 从技术上,HTTP 标准文档规定GET是可以携带请求体的
- 从标准和行业规范上,GET请求不应该携带请求体,一些浏览器会忽略Body
POST: 提交数据, 带请求体
PUT: 修改数据, 带请求体
DELETE: 删除数据, 无需请求体
OPTIONS: 在跨域请求时,浏览器会先发送OPTIONS请求(预检请求),询问服务器是否允许跨域
TRACE: 用于测试或诊断,服务器会返回请求的完整路径
- CONNECT
具体一些,GET与POST的区别
和上文一样,本质是语义层面的区别,但服务器与浏览器通常有约定俗成的规范行为,造成了区别。
- 浏览器发送GET时,不会附带Body,如果你自己用个Node去发,那想带就带
- GET用请求参数携带信息,数据量受浏览器限制,POST放Body自然没有限制
- GET只能传ASCII数据,现代浏览器会自动进行
URL-Encoding
- GET请求信息会暴露在URL中,所以敏感信息不要用GET,用POST
- GET请求会被浏览器缓存,可以添加到书签完整复现