说一下 GET 和 POST 的区别?

GET请求一般用来请求获取数据;

     POST请求一般作为发送数据到后台,传递、创建或者更新数据;

GET请求也可以传参到后台,但是传递的参数则显示在地址栏,安全性低,所以不能用来传递敏感信息,且参数的长度也有限制(2048字符);

     POST请求则是将传递的参数放在 Request body 中,不会在地址栏显示,安全性比GET请求高,参数没有长度限制;

③ GET请求刷新浏览器或者回退没有影响;

     POST请求则会重新请求一遍;

GET请求可以被缓存,也会保留在浏览器的历史记录中;

     POST请求不会被缓存,也不会保留在浏览器的历史记录中

⑤ GET请求通常是通过url地址请求;

     POST请求常见的则是form表单请求;

GET请求产生一个TCP数据包;

     POST请求产生两个TCP数据包;

具体就是:
1、GET请求时,浏览器会把 header 和 data 一起发送出去,服务器响应200(返回数据)
2、POST请求时,浏览器首先发送headers,服务器响应100 continue,浏览器再发送data,服务器响应200(返回数据)

如果把TCP传输比作汽车运输,那么GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

⑦ GET请求产生的URL地址可以被Bookmark;

     POST请求不可以;

⑧ GET请求会被浏览器主动cache;

     而POST请求不会,除非手动设置;

⑨ 对参数的数据类型,GET请求只接受ASCII字符;

     而POST请求没有限制;

⑩ GET请求只能进行URL编码(appliacation-x-www-form-urlencoded);

     POST请求支持多种(multipart/form-data等)

你可能感兴趣的:(每日专栏,HTTP,服务器,firefox,http,前端)