1.GET:
(1):get方式在url后面拼接参数,只能以文本的形式传递参数
(2):传递的数据量小,4kb左右(不同浏览器会有差异)
(3):安全性低,会将信息显示在地址栏
(4):速度快,通常用于对安全性要求不高的请求
常见:URL 、src/href、表单(form)
语法:index.php?userName=jack&password=123
语法(key=value&key=value): userName=jack&password=123 叫做查询字符串
2.POST:
(1):post提交数据相对于get的安全性高一些。(注意:抓包软件也会抓到post的内容,安全性要求高可以进行加密)
(2):传递数据量大,请求对数据长度没有要求
(3):请求不会被缓存,也不会保留在浏览器的历史记录中
(4):用于密码等安全性要求高的场合,提交数据量较大的场合,如上传文件,发布文章等
(5):POST方式提交数据上限默认为8M(可以在PHP的配置文件post_max_size选项中修改)
两者区别:
GET在浏览器回退时是无害的,而POST会再次提交请求
GET产生的URL地址可以被Bookmark,而POST不可以
GET请求会被浏览器主动cache,而POST不会,除非手动设置
GET请求只能进行url编码,而POST支持多种编码方式
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
GET请求在URL中传送的参数是有长度限制的,而POST没有
对参数的数据类型,GET只接受ASCII字符,而POST没有限制
GET参数通过URL传递,POST放在Request body中
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
3.PUT:关键性特征:幂等性
如果多次调用 PUT 请求,则结果不变。 因此,假设你创建了一个资源:一本书。如果你调用该方法两次,结果仍是相同的。更准确地说,在数据库中一本书只存在一次。每本书都是唯一的。
一个 POST 请求有些不同。如果你创建了一本书,然后再创建同一本书,你将拥有两本书。换句话说,第二次请求时你将会得到不同的结果。
因此,PUT 方法在防止副作用方面非常好用。
4.DELETE:
(1):用于删除指定的资源。
(2):如果 DELETE
方法成功执行,那么可能会有以下几种状态码:
- 状态码 202 (
Accepted
) 表示请求的操作可能会成功执行,但是尚未开始执行。 - 状态码 204 (
No Content
) 表示操作已执行,但是无进一步的相关信息。 - 状态码 200 (
OK
) 表示操作已执行,并且响应中提供了相关状态的描述信息。 - 特点是请求参数在URL中,请求体为空
5.还有其他几种请求方式,基本不常用:
(1):HEAD:类似于GET请求,但只获取请求头信息,不获取响应体信息。
(2):OPTIONS:用于获取当前URL所支持的HTTP方法。
(3):TRACE:用于追踪HTTP请求的路径。
(4):CONNECT:用于将HTTP请求转换为透明的TCP/IP连接。