html get请求_99% 的人都理解错了 HTTP 中 GET 与 POST 的区别【面试必问】

8a0a1f91b270942b1f1273b28a3c6f1f.png

2f59888d8da06779bbba635aa54f7b1e.png

先分析一波:

1、GET和POST与数据如何传递没有关系??

GET和POST是由HTTP协议定义的。那么使用哪个方式与应用层的数据如何传输是没有相互关系的。从而,HTTP就没有要求,POST一定要放到请求体里面,GET就一定要放到URL里面。

在HTML标准中,是有着类似的定义。但这只是HTML标准对HTTP协议的用法的约定。也就是规范上说,无区别。

那么,这个说法是从何而来的呢?是因为有各种浏览器等软件的实现,就变成了我们现在熟知的现象,GET要用URL传参,POST用body传参。

2、HTTP协议对GET和POST有没有对长度的限制??

HTTP协议明确地指出了,HTTP请求头和请求体都没有长度的要求。

而对于URL长度上的限制,有两方面的原因造成:

1、浏览器。

据说IE对URL长度会限制在2048个字符内。但是就我所知,firefox是支持10W以上的长度。

2、服务器。

服务器处理超长的URL本身就是一种负担,更何况遭受恶意攻击呢?

因此,多数服务器出于安全、稳定等多方面的考虑,会给URL长度加限制。但是这个限制是针对所有HTTP请求的,与GET、POST没有关系。

3安全不安全和GET、POST有没有关系??

这个问题,首先你得确认面向对象。

举个例子:

1、你现在要让我爸爸妈妈去看看这个URL,你觉得安全吗?

2、你现在要让一个刚入门的初级功能测试工程师去测试这个链接,你觉得安全吗?

3、你现在要让安全测试工程师去看看get请求,你觉得安全吗?

所以,针对不同的人群,安全的定义就会不一样。

“如果你愿意一层一层一层的剥开我的心 ,你会发现你会讶异 ,你是我最压抑 ,最深处的秘密 ”

把Get和Post剥开后,他们的本质上就是TCP链接,并无差别。


只是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

那么真相到底是什么呢?

Get产生一个TCP数据包;Post产生两个TCP数据包。


对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

对于POST,浏览器先发送header,服务器响应100(continue),然后再发送data,服务器响应200(返回数据);

321b402e9dc0db02ea375466366b78c0.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java属于哪种语言_Java属于以下哪种语言( )_学小易找答案

【单选题】AT89s51单片机若晶振频率为fosc12MHz,则一个机器周期等于( ) μS。【单选题】下列选项中,不属于Java中关键字的是( )【简答题】写出力在坐标轴上投影计算的两条重要结论。【判断题】《周南桃夭》中多次出现的“宜”指的是适宜。【单选题】以下关于三元运算符的说法中…

hive load data外部表报错_生产SparkSQL如何读写本地外部数据源及排错

https://spark-packages.org/里有很多third-party数据源的package,spark把包加载进来就可以使用了csv格式在spark2.0版本之后是内置的,2.0之前属于第三方数据源一、读取本地外部数据源1.直接读取一个json文件[hadoophadoop000 bin]$ ./spark-shell --mas…

java中的throw_Java中的throw和throws之间的区别

throw和throws都是异常处理的概念,其中throw用于显式地从方法或任何代码块中引发异常,而throw在方法的签名中用于指示此方法可能抛出列出的类型之一例外。以下是throw和throws之间的重要区别。序号键扔抛出1定义Throw是一个关键字,用于在函数…

ffmpeg命令_使用ffmpeg命令为多个短视频修改视频备注说明

今天主要给大家讲一下使用视频剪辑高手中的ffmpeg命令为多个短视频修改备注说明的详细步骤,有需要和感兴趣的宝贝们可以跟随小编一起来试试。收集视频将需要剪辑的短视频保存到同一文件夹上进入软件双击进入视频剪辑高手,选择“批量剪辑视频”功能添加视…

java 开发帮助_java的简单编程请帮助

(选择题答案可能有多选)一、java基础1、下面那句话编译时不会出现警告或错误:(5分)a)floatf1.3;b)charc"a";c)byteb257;d)booleanbnull;e)inti10;2、下面哪段程序编译时不会有错...(选择题答案可能有多选)一、 java基础1、 下面那句话编译时不会出现警告或…

从事python需要掌握哪些知识和技能_零基础想转行从事Python?需要掌握如下技能...

零基础python能找到工作吗?需要掌握哪些技能?对于大部分零基础学编程半路出家的人来说,无非是想改变现状换一门新职业,所谓技术大牛不过是比小白们更早接触编程罢了,选择好自己有兴趣的职业技能,并为之学习…

java 无法打印_为什么我在Java中尝试阻止后无法打印到控制台?

我在Android应用程序中有以下代码:public static HttpResponse dbPost(String handlerUrl, List postData) {HttpClient httpclient new DefaultHttpClient();String postUrl constants.postUrl();HttpPost httppost new HttpPost(postUrl);HttpResponse respons…

python中文件打开的合法模式组合_详解python中各种文件打开模式

在python中,总的来说有三种大的模式打开文件,分别是:a, w, r当以a模式打开时,只能写文件,而且是在文件末尾添加内容。当以a模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发现读出来的…

ts 模板库文件_vue与ts的使用模版

[源码地址](https://github.com/jielanglang/simple-vue)[项目demo](https://xll.netlify.com/)# 这里讲下使用中注意的事项 具体的使用在项目源码中## 关于typescript详细配制[tsconfig配制详情](https://zhongsp.gitbooks.io/typescript-handbook/content/doc/handbook/Comp…

python查找文件是否存在_python脚本查找文件是否存在的方法

python脚本查找文件是否存在的方法:1、使用os模块os模块中的os.path.exists()方法用于检验文件是否存在。判断文件是否存在import osos.path.exists(test_file.txt)#Trueos.path.exists(no_exist_file.txt)#False2、使用Try语句可以在程序中直接使用open()方法来检查…

java byte 判断相等_你真的了解Java中quot;==quot;和equals()的区别?

部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA密码:jsam想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复“知乎”即可。“判断两个事物是否相等”,是编程中最常见的操作之一,在Java中&#xff…

python pyqt5 线程 暂停 重启_PyQt5 线程阻塞?

读取串口数据实时显示到textbrower,但会线程阻塞,求大神指教# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 22.ui## Created by: PyQt5 UI code generator 5.10.1## WARNING! All changes made in this file will be lost!import s…

yolov3 python_TensorFlow的YOLOv3和YOLOv3_tiny

git clone https://github.com/Huangdebo/YOLOv3_tiny_TensorFlow.git11.简介添加YOLOv3_tiny和数据增强(剪切,变亮,更改饱和度)2.要求tensorflow> 1.8.0(更低版本也可以工作)OpenCV的Python3.运行演示(1)使用ckpt文件的单图像测试演示:p…

用python玩转数据测试与作业_用Python玩转数据分析10

MOOC上的课程《用Python玩转数据分析》的学习笔记。数据探索与预处理之数据清洗数据探索包括检查数据错误,了解数据分布特征和内在规律数据预处理包括数据清洗,数据集成(integration),数据变换,数据规约(reduction)本次主要讲解数…

excel中空格去不掉java_在Apache POI中跳过空白Excel单元格

我是Apache POI的新手,但我想做的是通过Excel文件(.xls)读取并将其放入ArrayList进行存储,以便稍后进行操作 . 我可以得到整张纸,但我的问题就在于:我得到整张纸(约54183行) .我想跳过空白的单元格,它是类型3.由于某种…

python代替javascript_Pyjamas - 用python代替javascript编写基于浏览器的应用

如果能用python代替Javascript编写基于浏览器的应用,该有多好啊。但是,Javascript是唯一一种能在浏览器里执行的语言(Flash或Silverlight除外)。换个思路,先用Python编写代码,然后在通过编译器转为为Javascript脚本,这…

java unreported exception_Java异常处理

大家好,欢迎来到乐字节小乐的Java技术分享园地在计算机程序运行的过程中,总是会出现各种各样的错误。有一些错误是用户造成的,比如,希望用户输入一个int类型的年龄,但是用户的输入是abc:// 假设用户输入了a…

数据通信原理_同网段主机通信原理

本篇文章介绍数据通信中最基础,最关键的原理之一,两台通网段的主机如何通信。获得更多技术资料和免费学习视频,加入讨论群:752160765适合两台普通电脑之间,两台服务器之间,两台手机之间,电脑和打…

java jdk 未知错误_解决JAVA JDK安装出错的最常见问题,帮你排除困扰

一般来说,安装JAVA JDK的整个流程是很简单的,只要按照提示进行操作即可,就不会出现问题。但是呢,有小伙伴反映说,之前安装了JAVA JDK,进行卸载重装的时候出现错误提示,“正在进行另一Java安装”…

定义const变量是不可以赋值_JavaScript的声明方法和作用范围,常见的结构赋值类型和使用场景...

链接:https://juejin.im/post/5d9bf530518825427b27639d声明const命令:声明常量 let命令:声明变量作用作用域全局作用域函数作用域:function() {}块级作用域:{}作用范围var 命令在全局代码中执行const命令和let命令只能…