GET和POST是什么?
GET和POST是HTTP协议中的两种发送请求的方法。浏览器用GET请求来获取一个html页面/图片/css/js等资源;用POST来提交一个表单,并得到一个结果的网页。(HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。HTTP只是个行为准则,而TCP才是GET和POST怎么实现的基本。)
1.url可见性:
get,参数url可见
post,url参数不可见
( GET参数通过URL传递,POST放在HTTP的包体内(Request body)中。)
2.传输数据的大小:
get一般传输数据大小不超过2k-4k
post请求传输数据的大小根据php.ini 配置文件设定,也可以无限大.实际上IIS4中最大量为80KB,IIS5中为100KB
3.数据传输上:
GET参数通过URL传递,POST放在Request body中。
(GET产生一个TCP数据包;浏览器会把http header和data一并发送出去,服务器响应200(返回数据
POST产生两个TCP数据包。浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 (返回数据)时间一般可以忽略)
4.缓存性:
GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
5.后退页面的反应
get请求页面后退时,不产生影响
post请求页面后退时,会重新提交请求
GET在浏览器回退时是无害的,而POST会再次提交请求。
6.安全性:
GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
(但是两种方式都不安全。为了避免传输中数据被窃取,必须做从客户端到服务器的端端加密。业界的通行做法就是https——即用SSL协议协商出的密钥加密明文的http数据。)
7.关于编码:
GET请求只能进行url编码,而POST支持多种编码方式
确切地说应该是http中url用什么编码,body用什么编码。
GET只接受ASCII字符的参数的数据类型,而POST没有限制。
浅淡get和post的区别(面试题)
最新推荐文章于 2024-07-14 19:38:24 发布