get请求和post请求的区别(简洁易懂)
一.GET和POST是什么?
HTTP协议中的两种发送请求的方法,本质上都是在进行TCP连接.
二. GET请求和POST请求的区别是什么?
GET请求参数是通过URL进行传递的,POST请求的参数包含在请求体当中。
GET请求比POST请求更不安全,因为参数直接暴露在URL中,所以,GET请求不能用来传递敏感信息。
GET请求在url中传递的参数是有长度限制的(在HTTP协议中并没有对URL的长度进行限制,限制是特定的浏览器以及服务器对他的限制,不同浏览器限制的长度不同。),POST对长度没有限制。
GET请求参数会完整的保留在浏览器的历史记录中,POST请求的参数不会保留。
GET请求进行url编码(百分号编码),POST请求支持多种编码方式。
GET请求产生的URL地址是可以被bookmark(添加书签)的,POST请求不可以。
GET请求在浏览器回退的时候是无害的,POST请求会.再次提交数据。
GET请求在浏览器中可以被主动cache(缓存),而POST请求不会,可以手动设置。
三. 深入
1、GET和POST有一个重大的区别:
简单地说
GET产生一个TCP数据包。
POST产生两个TCP数据包。
复杂的说
对于GET请求,浏览器会把http header和data一起发送出去,服务器响应200,请求成功。
对于POST请求,浏览器先发送header,服务器会响应100(已经收到请求的第一部分,正在等待其余部分),浏览器再次发送data,服务器返回200,请求成功。
2、既然POST请求需要两步,那么时间上的消耗会不会比GET请求更多?不会。
GET请求和POST请求都有自己的语义,不能随便混用。
在网络环境好的情况下,发送一次包的时间和发送两次包的时间差可以忽略,在网络环境差的情况下,发送两次包的TCP在验证数据的完整性上,有非常大的优势。
并不是所有的浏览器都会在POST请求中发送两次包。比如:火狐。
1、HTTP 只有POST和GET 两种命令模式;
2、 POST 是被设计用来向上放东西的,而GET是被设计用来从服务器取东西的,GET也能够向服务器传送较少的数据,而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.POST的信息作为HTTP 请求的内容,而GET是在HTTP 头部传输的;
3、POST与GET在HTTP 中传送的方式不同,GET的参数是在HTTP 的头部传送的,而Post的数据则是在HTTP 请求的内容里传送;
4、POST传输数据时,不需要在URL中显示出来,而GET方法要在URL中显示;
5、 GET方法由于受到URL长度的限制,只能传递大约1024字节;POST传输的数据量大,可以达到2M;
GET方法可以用来传输一些可以公开的参数信息,解析也比较方便,如百度的搜索的关键词,而POST方法可以用来提交一个用户的敏感信息(如果不使用HTTPS加密,报文正文仍旧是明文,容易被人截获读取
方法 描述
GET 请求指定的页面内容,并返回实体主体
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据包含在请求体中。POST请求可能会导致新的资源的建立或者已有资源的修改。
PUT 从客户端向服务器传送的数据取代指定的文档的内容
DELETE 请求服务器删除指定的页面
CONNECT HTTP1.1协议中预留给能够将连接方式改为管道方式的代理服务器
OPTIONS 允许客户端查看服务器的性能
TRACE 回显服务器收到的请求,主要用于测试或诊断
HTTP工作原理
HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求行(请求的方法、URL、协议的版本、)请求头部、空行和请求数据。 服务器以一个状态行作为响应,响应的内容包含状态行(协议的版本,成功或者错误代码,服务器信息),响应头部、空行和响应数据。
HTTP请求/响应的步骤: 客户端连接到Web服务器—>发送Http请求(一个请求报文由请求行、请求头部、空行和请求数据4部分组成。)—>服务器接受请求并返回HTTP响应(一个响应由状态行、响应头部、空行和响应数据4部分组成。)—>释放TCP连接—>客户端浏览器解析HTML内容
get请求和post请求的区别(简洁易懂)相关推荐
- 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是最常见的请 ...
- 接口定义,常见的接口,常见的接口请求方式,put请求和patch请求的区别
接口定义:应用程序编程接口,指前后端数据交互的一套标准,包括软件内部之间的接口,硬件之间的接口或者是软件对外的接口. 常见的接口类型: 1,Webservice接口,主要用于服务端的接 ...
- WEB中get请求和post请求的区别
参考:https://blog.csdn.net/weixin_39361808/article/details/81136865 GET请求和POST请求是HTTP协议发送请求的两种基本方法. W3 ...
- 简洁!get请求和post请求的区别——Web网络系列学习笔记
一次网络交互分为以下三个部分 用户向服务器发送请求 服务器处理请求 服务器向用户返回响应 Get和Post是不同的用户请求方式 Get请求到达服务器后不会修改服务器上的数据, 以CSDN为例,点击查看 ...
- Post请求和Get请求的区别
1.参数 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 其次:Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度限制,只能传递大约10 ...
- post请求和get请求的区别面试题
** GET请求 和 POST 请求 ** get和post是 HTTP 请求的两种基本方法,至于区别大致分为以下六个方面 ** 1.url可见性: get,参数url可见: post,url参数不可 ...
- POST请求和PUT请求的区别
结论: PUT请求:当两次请求相同时,第二次请求会覆盖第一次,一般用来更新资源 POST请求:第二次请求不会覆盖第一次,一般用来新增资源
最新文章
- delphi 搭建安卓开发环境
- Matlab读取txt文件中的数据(使用textread函数)
- centos6.5装mysql好难_centos 6.5装mysql5.7
- OGG迁移大库注意要点之impdp导入产生大量归档
- python中实现多路分支的最佳控制结构是_哪个选项是实现多路分支的最佳控制结构? (1.3分)_学小易找答案...
- 建好ftp服务器后怎么从客户端更改密码?
- as3 socket 跨域连接
- Docker教程小白实操入门(20)--如何删除数据卷
- IBM TSM官方最全资料
- 如何用 Python 识别车牌?
- windows下安装informix数据库服务端
- 三分钟告诉你什么是三层交换机!
- 京东到家搜索系统架构演进
- ANACONDA下载opencv,py-opencv,libopencv的区别
- 经验分布函数无偏性的证明和方差的推导
- 移动端H5实现图片上传
- sshfs真是爽啊!
- 阿里巴巴《Java开发手册》2019最新版下载!
- win10 1903 笔记本开热点出现蓝屏问题
- 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除
热门文章
- c语言程序设计林小茶,C语言第一篇概述林小茶
- 可信验证与TPCM技术
- 四样融合!对东软刘积仁的战略布局,大写的服!
- Oracle 查询当前用户所有表以及统计表内数据行数
- 你知道如何健康饮水吗
- 2020牛客暑期多校训练营(第八场)E	Enigmatic Partition —— 找规律,差分上差分,有丶东西
- 荣耀30sr升级鸿蒙,荣耀30和V30系列将首批搭载Magic UI 4.0,后续支持升级为鸿蒙系统...
- Mybatis配置Mapper踩过的坑
- css 边框 不连续,css 不规则边框怎么设置
- HDU--1010--Tempter of the Bone