谈谈Http中Get和Post的区别
目录
- `HTTP` 协议
- `Get` 和 `Post` 的区别
- 请求数据的位置
- 请求数据的大小
- 请求数据安全性
- 二者的本质联系与区别
HTTP
协议
HTTP
是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于 1990
年提出,经过几年的使用与发展,得到不断地完善和扩展
HTTP
请求数据
HTTP
响应数据
HTTP
自身并不负责网络数据传输的,而是利用TCP/IP
协议来进行的
Get
和 Post
的区别
请求数据的位置
Get
请求的数据会附在 URL
之后,以 ?
分割 URL
和传输数据,参数之间以 &
相连;而 POST
请求把提交的数据则放置在是 HTTP
请求包的包体中
对于这样的说法,只是 HTML 标准对 HTTP 协议的用法的约定,在 HTTP 协议规范中,
并无要求。只是由于各种浏览器等软件的实现,就变成了我们现在熟知的现象,
GET 要用 URL 传参,POST 用 body 传参
请求数据的大小
Get
请求的长度受限于 URL
的长度,而 URL
的长度限制是特定的浏览器和服务器设置的,理论上 Get
的长度可以无限长;而 POST
请求是没有大小限制的,HTTP
协议规范也没有进行大小限制,起限制作用的是服务器的处理程序的处理能力
在 HTTP 协议中明确地指出了,HTTP 请求头和请求体都没有长度的要求。而对于 URL 长度上
的限制,有两方面的原因造成:1:浏览器端来说:据说 IE 对 URL 长度会限制在 2048 个字符内。firefox 是支持 10W 以上的长度2:服务器端:服务器处理超长的 URL 本身就是一种负担,更何况遭受恶意攻击呢?
因此,多数服务器出于安全、稳定等多方面的考虑,会给 URL 长度加限制。但是这个限制是针对
所有 HTTP 请求的,与 GET、POST 没有关系
请求数据安全性
POST
请求的安全性要比 GET
请求的安全性高
二者的本质联系与区别
Get
和 Post
,他们的本质上就是 TCP
链接,只是由于 HTTP
的规定和浏览器或服务器的限制,导致他们在应用过程中体现出一些不同
Get 产生一个 TCP 数据包;Post 产生两个 TCP 数据包对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应200
(返回数据)对于 POST 方式的请求,浏览器先发送 http header,服务器响应100(continue),然后
再发送 data,服务器响应 200(返回数据);
谈谈Http中Get和Post的区别相关推荐
- android 代码中使用dp,简单谈谈Android中SP与DP的区别
从一开始写Android程序,就被告知这些常识 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px.不同 ...
- android中sp的意义_简单谈谈Android中SP与DP的区别
从一开始写android程序,就被告知这些常识 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px.不同 ...
- 摩客怎么设置安卓的dp_简单谈谈Android中SP与DP的区别
从一开始写Android程序,就被告知这些常识 一.dp(或者dip device independent pixels) 一种基于屏幕密度的抽象单位.在每英寸160点的显示器上,1dp=1px.不同 ...
- 史上最详细的mysql底层和explan type和type中index和all的区别
背景: 前几天我朋友问我一个问题,mysql的explan(执行计划)中type的index和all是不是压根没有区别,而且还推了几个博主的链接给我,我看了之后感觉有些无奈,有些博主自己都没有太搞清楚 ...
- 谈谈 VUE 中 methods、watch 和 compute 三者之间区别和联系
本篇文章主要介绍了谈谈 VUE 中 methods.watch 和 compute 的区别和联系,具有一定的参考价值,有兴趣的可以了解一下 < 他三个是啥子关系呢?> ...
- python yield用法_Python中迭代器和生成器的区别?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- 【Python面试】 说说Python中xrange和range的区别?
往期面试题: 谈谈对 Python 和其他语言的区别? 说说4种常用编码的区别? 说说Python面向对象三大特性? 说说Python中有几种数据类型? 废话不多说,开始今天的题目: 问:说说Pyth ...
- Spark精华问答 | 谈谈spark中的宽窄依赖
总的来说,Spark采用更先进的架构,使得灵活性.易用性.性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高.我总结,具体表现在如下几个方面. 1 Q:Spark ...
- python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?
公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...
- C#中List与IList的区别
C#中List与IList的区别 2009-11-15 14:19 List<T>类:表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索.排序和操作的方法. IList<T ...
最新文章
- C++中的变量作用域介绍
- java数据结构教程_Java数据结构
- 从零开始学习python-如何从零开始学python?
- 功能奇数次执行和偶数次执行时的结果不同的故障复盘
- 操作MySQL数据库
- Android Studio中有没有类似于Eclipse中的ctrl+2+L的快捷键? \Android Studio快捷键之代码提示...
- 在ASP.NET AJAX中使用应用程序服务和本地化(4):示例程序:读取、修改并保存用户个性化信息...
- 图像识别:利用KNN实现手写数字识别(mnist数据集)
- 双十一图书大数据:金庸第1,Python第2,学霸们都买了这些书
- mysql1000w数据怎么加索引_给mysql一百万条数据的表添加索引
- linux 屏蔽信号 sig_kill sig_stop,linux 信号处理
- java jpa 字段 关联_jpa查询关联表懒加载数据initialize proxy no session
- 打java包需要对应服务器么_java打war包、部署服务器
- 从ST官网获取STM32 AD封装库(包含原理图库和PCB库)详细教程
- 三菱modbusRTU通讯实例_PLC编程 | 用三菱PLC控制机械手实例
- 百度语音识别API报错KeyError: ‘result‘
- Google Chrome 启动 0x0000005 崩溃问题的解决方法
- 车载GPS设备对接java记录
- 毕业设计---基于人脸识别的Web端考勤系统
- 爬虫:利用python+requests爬取全国肯德基餐厅门店信息,并写入CSV文件中
热门文章
- SwiftUI实战一:从入门到精通
- java8中class怎么用_如何在Java中使用Class T?
- 2021-09-02最大矩形
- C++例4.11 求两个或三个正整数中的最大数,用带有默认参数的函数实现。
- Android Studio搭建Tensorflow Lite项目和加载tflite模型文件
- 多小区下小区上行速率的计算的想法
- 【机器学习】Cross-Validation(交叉验证)详解
- 标准库:urllib/urllib2
- Ten graph questions of about 2000 difficulty of Codeforces Round 2
- mac储存文件应该放在哪里_单位不能存档,个人档案应该放在哪里呢,影响今后退休金吗?...