GET - 从指定的资源请求数据。
POST - 向指定的资源提交要被处理的数据。
由于HTTP的规定和浏览器/服务器的限制,导致它们在应用过程中体现出一些不同。
操作 | GET | POST |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 |
缓存 | 能被缓存 | 不能缓存 |
编码方式 | 只能进行url编码 | 支持多种编码方式 |
是否保留在浏览历史 | 参数保留在浏览器历史中 | 参数不会保存在浏览器历史中。 |
对数据长度的限制 | 发送数据,GET 方法向 URL 添加数据,但URL的长度是受限制的 | 无限制 |
对数据类型的限制 | 只允许 ASCII 字符 | 没有限制 也允许二进制数据 |
安全性 | 安全性较差,因为参数直接暴露在url中 | 因为参数不会被保存在浏览器历史或 web 服务器日志中 |
可见性 | 数据在 URL 中对所有人都是可见的 | 数据不会显示在 URL 中 |
传参方式 | get参数通过url传递 | post放在request body中 |
HTTP常见的头部
1、Accept:text/html, application/xhtml+xml, application/xml;q=0.9, image/webp, image/apng, /; q=0.8
作用:向服务器申明客户端(浏览器)可以接受的媒体类型(MIME)的资源
解释:浏览器可以接受text/html、application/xhtml+xml、application/xml类型,通配符*/* 表示任意类型的数据。并且浏览器按照该顺序进行接收。( text/html —> application/xhtml+xml —> application/xml)
2、Accept-encoding: gzip, deflate, br
作用:向服务器申明客户端(浏览器)接收的编码方法,通常为压缩方法
解释:浏览器支持采用经过gzip,deflate 或 br 压缩过的资源