相同点
GET 和 POST 方法只是 HTTP 协议为了不同分工而规定的两种请求方式。
整个请求过程大概是这样的:
- 客户端 IP 发出请求。
- 发出的请求数据包会通过 TCP ,经网络传输给远程服务端 IP。
- 服务端 IP 收到请求包之后,解析并处理请求包最后服务端会通过 TCP 将处理结果返回给客户端。
- 用户便可以查看到想要的响应数据。
区别
1、作用不同
- GET 多用于从服务端获取资源
- POST 一般用来向服务端提交资源
2、参数传递方式不同
- GET 的参数一般是通过
?跟在 URL 后面的,多个参数通过&连接,比如:www.example.com?serach=bianchengsanmei&content=123。 - POST 的参数一般是包含在
request body中的
3、安全性不同
因为参数传递方式的不同,所以 GET 和 POST 的安全性不同:GET 比 POST 更不安全,因为参数直接暴露在URL上,所以 GET 不能用来传递敏感信息。
4、参数长度限制不同
GET 和 POST 传递参数的长度不同:
- get传送的数据量较小,不能大于2KB。
- post传送的数据量较大,一般被默认为不受限制。
POST 请求的过程:
- 浏览器请求 TCP 连接(第一次握手)
- 服务器答应进行 TCP 连接(第二次握手)
- 浏览器确认,并发送 POST 请求头(第三次握手,这个报文比较小,所以 HTTP 会在此时进行第一次数据发送)
- 服务器返回100 Continue响应
- 浏览器发送数据
- 服务器返回 200 OK响应
GET 请求的过程:
-
浏览器请求 TCP 连接(第一次握手)
-
服务器答应进行 TCP 连接(第二次握手)
-
浏览器确认,并发送 GET 请求头和数据(第三次握手,这个报文比较小,所以 HTTP 会在此时进行第一次数据发送)
-
服务器返回 200 OK响应