HTTP请求的GET与POST方式的区别

一、两者的各自特点:

  1. 使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器,有以下特点:
    1. GET请求能够被缓存
    2. GET请求会保存在浏览器的浏览记录中
    3. 以GET请求的URL能够保存为浏览器书签
    4. GET请求有长度限制,最多只能1024字节
    5. GET请求主要用以获取数据
    6. 可能不是很安全,请求数据会暴露在url中
    7. get将表单中数据按照name=value的形式,添加到action 所指向的URL 后面,并且两者使用"?"连接,而各个变量之间使用"&"连接;
  2. 使用POST方法时,查询字符串在POST信息中单独存在,和HTTP请求一起发送到服务器,有以下特点:
    1. POST请求不能被缓存下来
    2. POST请求不会保存在浏览器浏览记录中
    3. 以POST请求的URL无法保存为浏览器书签
    4. POST请求没有长度限制
    5. post是将表单中的数据放在HTTP协议的请求头或消息体中,传递到action所指向URL;

二、深层理解两者:

本质上来说:get和post本质上都是基于TCP/IP的HTTP协议的请求方式,也就是说这两者本质上TCP连接。此外,要注意:GET产生一个TCP数据包;POST产生两个TCP数据包。

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

简单来说,get方法只需要进行一次传输即可,而post方法需要两次,先与远程服务器打通,然后再进行传输,而get方法可以直接传输。

https://mp.weixin.qq.com/s?__biz=MzI3NzIzMzg3Mw==&mid=100000054&idx=1&sn=71f6c214f3833d9ca20b9f7dcd9d33e4#rd

原文地址:https://www.cnblogs.com/baichendongyang/p/13235504.html