ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

GET 与 POST区别

2021-07-23 01:31:12  阅读:140  来源: 互联网

标签:浏览器 区别 URL GET TCP 服务器 POST


GET、POST区别

  1. GET在浏览器回退时是无害的,而POST会再次提交请求。
  2. GET产生的URL地址可以被Bookmark,而POST不可以。
  3. GET请求会被浏览器主动cache,而POST不会,除非手动设置。
  4. GET请求只能进行url编码,而POST支持多种编码方式。
    编码类型;GET:application/x-www-form-urlencoded; POST:application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
  5. GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
  6. GET请求在URL中传送的参数是有长度限制的,而POST么有。
    浏览器和服务器对URL长度限制;服务器是因为处理长 URL 要消耗比较多的资源,为了性能和安全(防止恶意构造长 URL 来攻击)考虑;
  7. 对参数的数据类型,GET只接受ASCII字符,而POST没有限制
  8. 与 POST 相比,GET 的安全性较差,因为参数直接暴露在URL上,所以不能用来传递敏感信息。在发送密码或其他敏感信息时绝不要使用 GET !
  9. GET参数通过URL传递,POST放在Request body中。
  10. get方式提交数据的大小(一般来说1024字节),http协议并没有硬性限制,而是与浏览器、服务器、操作系统有关,而POST理论上来说没有大小限制,http协议规范也没有进行大小限制,但实际上post所能传递的数据量根据取决于服务器的设置和内存大小。

POST 方法会产生两个TCP数据包?

GET产生一个TCP数据包;POST产生两个TCP数据包。
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。(并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。)
HTTP 协议中没有明确说明 POST 会产生两个 TCP 数据包,而且实际测试(Chrome)发现,header 和 body 不会分开发送。
所以,header 和 body 分开发送是部分浏览器或框架的请求方法,不属于 post 必然行为。

GET 和 POST 报文上的区别

GET /index.php?name=qiming.c&age=22 HTTP/1.1
Host: localhost
POST /index.php HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded

name=qiming.c&age=22

GET和POST本质上没有区别

GET和POST的底层是TCP/IP,也就是说,GET/POST都是TCP链接。

标签:浏览器,区别,URL,GET,TCP,服务器,POST
来源: https://www.cnblogs.com/bounsail/p/15047103.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有