在网络通信中,GET和POST是HTTP协议中两种最常见的请求方法。
GET请求主要用于请求服务器发送资源,而POST请求则用于提交数据给服务器进行处理。以下是具体分析:
在学习的时候掌握的知识点
1.目的性
GET:常用于从服务器获取数据,例如查询操作。
POST:通常用于向服务器提交数据,如表单信息或文件上传。
2.参数位置
GET:将请求数据附加在URL后面,以查询字符串的形式出现。
POST:把传递的参数放在请求体中,不会显示在URL中。
3.数据安全性
GET:数据暴露在URL中,隐私性和安全性较低。
POST:数据不在URL中显示,安全性较高。
4.数据长度
GET:因为数据是URL的一部分,所以有长度限制,通常限制在2KB以内。
POST:无大小限制,可以传送较多的数据。
5.缓存处理
GET:可被缓存,数据会被保留在浏览器历史记录中。
POST:不会被缓存,数据不会保存在浏览器历史记录中。
6.编码方式
GET:只能进行URL编码。
POST:支持多种编码方式,如multipart/form-data等。
7.TCP数据包
GET:产生一个TCP数据包。
POST:产生两个TCP数据包,但并非所有浏览器都这样。
8.语义方面
GET:语义上是安全和幂等的,主要用于获取数据。
POST:语义上是不安全但非幂等的,主要用于更新数据。
面试时候的简单概述:
表单提交中get和post方式的区别有5点
1.get是从服务器上获取数据,post是向服务器传送数据。
2.get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTPpost机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3.对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4.get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。(这里有看到其他文章介绍get和post的传送数据大小跟各个浏览器、操作系统以及服务器的限制有关)
5.get安全性非常低,post安全性较高。