一、GET
预定义的 $_GET 变量用于收集来自 method=“get” 的表单中的值。
在 HTML 表单中使用 method=“get” 时,所有的变量名和值都会显示在 URL 中,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。
注释:所以在发送密码或其他敏感信息时,不应该使用这个方法!正因为变量显示在 URL 中,因此可以在收藏夹中收藏该页面。
注释:GET 方法不适合大型的变量值。它的值是不能超过 2000 个字符的。
get请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回200 OK响应
二、POST
预定义的 $_POST 变量用于收集来自 method=“post” 的表单中的值。
从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。
注释:默认情况下,POST 方法的发送信息的量最大值为 8 MB(可通过设置 php.ini 文件中的 post_max_size 进行更改)。由于变量不显示在 URL 中,所以无法把页面加入书签。
post请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器校验成功后返回100 Continue响应
(5)浏览器发送请求体
(6)服务器返回200 OK响应
三、区别
1.post请求包含更多的请求头.
2.post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据.
3.get会将数据缓存起来,而post不会.