一.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请求的区别(简洁易懂)相关推荐

  1. JSP、Servlet中get请求和post请求的区别总结

    在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...

  2. java中的post的作用,JSP、Servlet中get请求和post请求的区别总结

    在学习JavaWeb最初的开始阶段,大家都会遇到HttpServlet中的doGet和doPost方法.前两天看<Head First Servlets & JSP>看到其中讲关于 ...

  3. 客户端(前端)Ajax中Get请求和Post请求的区别

    我们在使用Ajax时,当我们向服务器发送数据时,我们可以采用Get方式请求服务器,也可以使用Post方式请求服务器.那么,Get请求和Post请求的区别到底在哪呢?  GET请求  get是最常见的请 ...

  4. 接口定义,常见的接口,常见的接口请求方式,put请求和patch请求的区别

    接口定义:应用程序编程接口,指前后端数据交互的一套标准,包括软件内部之间的接口,硬件之间的接口或者是软件对外的接口. 常见的接口类型:         1,Webservice接口,主要用于服务端的接 ...

  5. WEB中get请求和post请求的区别

    参考:https://blog.csdn.net/weixin_39361808/article/details/81136865 GET请求和POST请求是HTTP协议发送请求的两种基本方法. W3 ...

  6. 简洁!get请求和post请求的区别——Web网络系列学习笔记

    一次网络交互分为以下三个部分 用户向服务器发送请求 服务器处理请求 服务器向用户返回响应 Get和Post是不同的用户请求方式 Get请求到达服务器后不会修改服务器上的数据, 以CSDN为例,点击查看 ...

  7. Post请求和Get请求的区别

    1.参数 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数.  其次:Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度限制,只能传递大约10 ...

  8. post请求和get请求的区别面试题

    ** GET请求 和 POST 请求 ** get和post是 HTTP 请求的两种基本方法,至于区别大致分为以下六个方面 ** 1.url可见性: get,参数url可见: post,url参数不可 ...

  9. POST请求和PUT请求的区别

    结论: PUT请求:当两次请求相同时,第二次请求会覆盖第一次,一般用来更新资源 POST请求:第二次请求不会覆盖第一次,一般用来新增资源

最新文章

  1. delphi 搭建安卓开发环境
  2. Matlab读取txt文件中的数据(使用textread函数)
  3. centos6.5装mysql好难_centos 6.5装mysql5.7
  4. OGG迁移大库注意要点之impdp导入产生大量归档
  5. python中实现多路分支的最佳控制结构是_哪个选项是实现多路分支的最佳控制结构? (1.3分)_学小易找答案...
  6. 建好ftp服务器后怎么从客户端更改密码?
  7. as3 socket 跨域连接
  8. Docker教程小白实操入门(20)--如何删除数据卷
  9. IBM TSM官方最全资料
  10. 如何用 Python 识别车牌?
  11. windows下安装informix数据库服务端
  12. 三分钟告诉你什么是三层交换机!
  13. 京东到家搜索系统架构演进
  14. ANACONDA下载opencv,py-opencv,libopencv的区别
  15. 经验分布函数无偏性的证明和方差的推导
  16. 移动端H5实现图片上传
  17. sshfs真是爽啊!
  18. 阿里巴巴《Java开发手册》2019最新版下载!
  19. win10 1903 笔记本开热点出现蓝屏问题
  20. 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除

热门文章

  1. c语言程序设计林小茶,C语言第一篇概述林小茶
  2. 可信验证与TPCM技术
  3. 四样融合!对东软刘积仁的战略布局,大写的服!
  4. Oracle 查询当前用户所有表以及统计表内数据行数
  5. 你知道如何健康饮水吗
  6. 2020牛客暑期多校训练营(第八场)E Enigmatic Partition —— 找规律,差分上差分,有丶东西
  7. 荣耀30sr升级鸿蒙,荣耀30和V30系列将首批搭载Magic UI 4.0,后续支持升级为鸿蒙系统...
  8. Mybatis配置Mapper踩过的坑
  9. css 边框 不连续,css 不规则边框怎么设置
  10. HDU--1010--Tempter of the Bone