16. HTTP 方法:GET 与 POST 对比
Posted 全端学堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了16. HTTP 方法:GET 与 POST 对比相关的知识,希望对你有一定的参考价值。
在客户端浏览器和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST,下面来比较一下这两种方式。
- GET - 常用于从指定的资源请求数据。
- POST - 常用于向指定的资源提交要被处理的数据。
比较:
- GET 在浏览器刷新和回退时是无害的,而 POST 会再次提交请求;
- GET 产生的URL地址可以被添加为书签(或收藏),而 POST 不可以;
- GET 请求会被浏览器缓存,而 POST 不会被缓存,除非手动设置;
- GET 请求只能进行 URL 编码(application/x-www-form-urlencoded),而 POST 支持多种编码方式(application/x-www-form-urlencoded 或 multipart/form-data);
- GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留;
- GET 请求在 URL 中传送的参数是有长度限制的(大多数浏览器通常都会限制 URL 长度为 2048 个字节),而 POST 没有长度限制;
- 对参数的数据类型,GET 只接受 ASCII 字符,而 POST 没有限制;
- GET 比 POST 更不安全,因为参数会直接暴露在 URL 上,所以不能用来传递敏感信息;
- GET 参数通过 URL 传递,POST 放在 request body 中;
- GET 请求产生一个 TCP 数据包,而 POST 请求产生两个 TCP 数据包:对于 GET 方式的请求,浏览器会把 HTTP 头信息和数据一并发送出去,而对于 POST 请求,浏览器先发送请求头信息,服务器响应返回 100 状态码时,浏览器再发送请求主体中的数据(也不是所有浏览器在 POST 请求时都会发送两个数据包,比如 Firefox 就只发送一个),这样看来 GET 会比 POST 更高效。
以上是关于16. HTTP 方法:GET 与 POST 对比的主要内容,如果未能解决你的问题,请参考以下文章