最早接触GET和POST是在学习Html中的form标签。
<form name="login" method="get" action="#" target="_blank">
<input type="text" value=""/>
</form>
在Ajax学习中无可避免再次遇见。所以做个浅显的总结。
相同点:
GET和POST是HTTP协议中的两种发送请求的方法。
HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。
HTTP的底层是TCP/IP。
所以GET和POST的底层也是TCP/IP,GET/POST都是TCP链接。
不同点:
get | post | |
---|---|---|
传送方式 | 地址栏传输 | 报文传输 |
请求参数位置 | URL | Request body(请求体) |
请求参数长度 | URL传参有长度限制 | 无限制 |
编码方式 | URL编码 | 支持多种编码方式 |
数据类型 | 只能是ASCII码 | 无限制 |
保留 | 保留在浏览器历史记录 | 不保留 |
安全性 | 明文传输 | 不可见 |
传送数据量 | 小 | 默认无限制 |
执行效率 | 高 | 低 |
TCP数据包 | 1个 | 2个 |
过程 | header和data一起发送,服务器响应200 | 先发送header,响应100 continue,再发送data,再响应200 |