Http中的Post和GET请求的区别
原理区别:
一般我们在浏览器输入一个网址访问网站都是GET请求,获取Html文件到浏览器运行。
GET - (获取数据)从指定的服务器中获取数据Get,是向服务器发索取数据的一种请求,Get是获取信息,而不是修改信息,类似数据库查询功能一样,数据不会被修改
POST - (提交数据处理)提交数据给指定的服务器处理,Post是向服务器提交数据的一种请求
为了理解两者在传输过程中的不同,我们先看一下HTTP协议的格式:
HTTP请求:
<request line> //http请求行
<headers> //http请求消息报头
<blank line> // 回 车 换行
[<request-body>] //http请求正文
在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。
GET与POST方法实例:
GET /books/?sex=man&name=Professional HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive
POST / HTTP/1.1
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Content-Type: application/x-www-form-urlencoded
Content-Length: 40
Connection: Keep-Alive
(----此处空一行----)
name=Professional%20Ajax&publisher=Wiley
1,请求参数区别:
Get请求的参数会跟在url后进行传递,请求的数据会附在URL之后,以?分割URL和传输数据,参数之间以&相连,例 如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。%XX中的XX为该符号以16进制表示的ASCII,如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密。
POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中,上文示例中红色字体标明的就是实际的传输数据
因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变
2,数据的大小区别:
Get:传输的数据有大小限制,因为GET是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了,不同的浏览器对URL的长度的限制是不同的。特定浏览器和服务器对URL长度有限制,例如 IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制
POST:由于不是通过URL传值,理论上数据不受 限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。
3,安全性区别
POST的安全性比GET的高
GET请求的数据会被浏览器缓存起来,用户名和密码将明文出现在URL上,其他人可以查到历史浏览记录,数据不太安全。
Http中的Post和GET请求的区别相关推荐
- JSP、Servlet中get请求和post请求的区别总结
在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...
- java中的post的作用,JSP、Servlet中get请求和post请求的区别总结
在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...
- 客户端(前端)Ajax中Get请求和Post请求的区别
我们在使用Ajax时,当我们向服务器发送数据时,我们可以采用Get方式请求服务器,也可以使用Post方式请求服务器.那么,Get请求和Post请求的区别到底在哪呢? GET请求 get是最常见的请 ...
- WEB中get请求和post请求的区别
参考:https://blog.csdn.net/weixin_39361808/article/details/81136865 GET请求和POST请求是HTTP协议发送请求的两种基本方法. W3 ...
- python中的post和get请求的区别_HTTP: Request中的post和get区别
* get和post之间的主要区别 1.get是从服务器上获取数据,post是向服务器传送数据. 2.在客户端, get是把参数数据队列加到提交表单的action属性所指的url中,值和表单内各个字段 ...
- 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求
这个需求来自于我最近练手的一个项目,在项目中我需要将一些自己发表的和收藏整理的网文集中到一个地方存放,如果全部采用手工操作工作量大而且繁琐,因此周公决定利用C#来实现.在很多地方都需要验证用户身份才可 ...
- 示例Express中路由规则及获取请求参数
本次给大家分享一篇基于express中路由规则及获取请求参数的方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. express中常见的路由规则 ...
- mitmdump脚本中使用requests模块发送请求
本文仅供学习交流使用,如侵立删! 环境 win10.Windows Server 2008 R2 python3.9 mitmdump4.0 mitmdump脚本中使用requests模块发送请求 m ...
- unity3d中画线有几种方式_Spring RestTemplate中几种常见的请求方式
原文 https://segmentfault.com/a/1190000011093597 在Spring Cloud中服务的发现与消费一文中,当我们从服务消费端去调用服务提供者的服务的时候,使用了 ...
最新文章
- c++ 类文件的动态库生成及调用例子
- 多层PCB的叠层板材
- 【正一专栏】梅西!梅西!梅西!
- java第五章 多线程_java多线程编程核心技术——第五章总结
- 安全声明标记语言SAML2.0初探
- mysql主从复制故障处理_MySQL主从复制故障处理一例
- 别纠结,提高代码整洁度也没那么难!
- bcrypt java maven_BCrypt.checkpw()无效的盐版本异常
- 聊聊flink JobManager的heap大小设置 1
- 如何配置Java环境
- 邮件服务器 文件服务器,搭建邮件、终端和文件服务器应用方案
- 在思科路由器上配置DNS服务器
- 拉格朗日插值的优缺点_拉格朗日插值法与牛顿插值法比较
- JavaScript中onblur事件
- 钕铁硼表面处理之—钝化
- Java8新特性三:常用的函数式接口(Supplier,Consumer,Predicate,Function)
- 关于文件夹病毒exe的处理方法
- Python:实现scoring评分算法(附完整源码)
- [转]MQ(ActiveMQ)原理及介绍
- 删除数据库表中的重复记录
热门文章
- Syntax error, annotations are only available if source level is 1.5 or greater.
- 设计模式总结 (3)创建内存型模式
- Hgame 2022 Answer‘s Windows
- IDA无法反编译 and 提示错误
- 设计模式--装饰者(Decorator)模式
- Linux Kernel 5.14 arm64异常向量表解读-中断处理解读
- [记录]-Cortex-A76仅EL0支持aarch32
- 列表字符串集合字典的常见方法
- GetDiskFreeSpace 和 GetDiskFreeSpaceEx
- 学习运维工程师是正确的选择,发展与前景都是和好的