网络系列之GET与POST请求方式的区别
作为一枚正在学习前端的 小萌新,如果下面哪里有写的不对的话,可以帮我指出来吗,谢谢
1.是基于什么前提的?如果什么前提都没有,不使用任何规范,只考虑语法和理论上的HTTP协议
那么GET和POST几乎没有什么区别,只有名字不一样而已。
2.如果是基于RFC规范的。
(1) 理论上的:GET和POST具有相同语法的,但是有不同的语义。 GET是用来获取数据的,POST是用来发送数据的,其他方面没有什么区别。
(2) 实现上的:各种浏览器呢,就是实现RFC规范的实现者。
2.1. GET的数据在URL是可见的。POST请求不显示在URL中。
2.2. GET传输的数据,理论上是没有限制的,但是真正起到限制的浏览器对URL的长度进行的限制,
IE:2083个字符 Firefox:65,536个字符 Safari:80,000个字符 Opera:190,000个字符 Google Chrome:8182个字符
对于 POST,由于不是 URL 传值,理论上是不会受限制的,但是实际上各个服务器会规定对 POST提交数据大小进行限制,Apache、IIS 都有各自的配置。
2.3. GET请求的数据可以收藏为书签,POST请求到的数据不可以收藏为书签
2.4. GET请求后,按后退按钮,刷新页面 无影响,但是POST数据会被重新提交。
2.5. GET编码类型:application/x-www-form-url, POST的编码类型:有很多种,例如有:
1.application/x-www-form-urlencoded
2.multipart/form-data
3.application/json
4.text/xml
2.6. GET历史参数会被保留在浏览器里,POST不会保持在浏览器中
2.7. GET只允许ASCII编码,POST没有编码限制
2.8. GET比POST相对安全,对于小白来说,确实如此,毕竟GET 发生的数据都放在URL里面了。POST是放在数据体(Request)里面, 如果使用的是HTTP协议传输的话,其实他俩都是一样的,因为HTTP协议,传输的数据 都是明文的,所以,去网页输入账号密码的时候,记得看是HTTP,还是HTTPS的。s的比较安全。
那,上面的呢,就是标准答案了。相信百度上,大多数都是跟这个类似的答案了。
在上面说到,在没有规范的前提下,他俩完全是没有区别的。都是基于HTTP协议,HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,所以他们的底层一样,那么要怎么传数据,当然也可以设置成一样。技术上,是完全ojbk的。
GET和POST还有一个重大区别,简单的说:
GET只会产生一个TCP数据包;POST会产生两个TCP数据包。
通俗来说的话:
GET请求,浏览器会把 请求头和 数据一起发送过去,服务器收到了,就返回数据。
POST呢,他是先发送请求头,服务器返回状态码100,然后浏览器再发送数据过去,服务器收到了再返回数据和状态码200。
所以看到这里,有人可能会说,既然 POST发送两次包, GET只发送一次包,理论上是不是GET比较快? 那么我们是不是可以使用GET来代替POST请求?
不行滴,因为GET 和 POST本来自身就有自己的用处,不能随便混用的。而且,在网络较好的环境下,其实他俩发送一次和两次包的时间,几乎是差不多的。而且对于5G时代来说,更是如此。最后,对
于包的完整,是不是使用POST更能保证他的完整性?
网络系列之GET与POST请求方式的区别的更多相关文章
- ajax中Post和Get请求方式的区别?
ajax中Post和Get请求方式的区别: 1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示. 2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的 ...
- Ajax学习系列——jQuery中Ajax的请求方式
在jQuery中,Ajax常见的请求方式主要有4种. 1.$.ajax()返回其创建的XMLHttpRequest对象. $.ajax({ type:"POST", content ...
- 浅谈HTTP中GET和POST请求方式的区别
浅谈HTTP中GET和POST请求的区别 HTTP认知: HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议.HTTP的底层是TCP/IP.所以GET和POST的底层也是TCP/IP,也 ...
- HTTP请求方式及其区别
一.请求方式 所有的请求都可以给服务器传递内容,也可以从服务器获取内容. GET:从服务器获取数据(给的少拿的多) POST:向服务器推送数据(给的多拿的少) DELETE:删除服务器的一些内容 PU ...
- get和post 两种基本请求方式的区别
GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...
- POSTMAN中各种请求方式的区别
1.form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开.既可以上传键值对,也可以上传文件.当上传的字段是文件 ...
- get和post请求方式的区别
1.用途方面: get是向服务器请求数据,post是向服务器发送数据. 2.大小方面: get发送数据上有大小限制,post理想上无大小限制,实际上有限制. 3.安全方面: get请求的数据会显示在地 ...
- get和post请求方式的区别,常见状态码的整理
get和post的区别 get和post是什么? HTTP协议中的两种发送请求的方法.get从指定的资源请求数据: post向指定的资源提交要被处理的数据. HTTP是什么? 超文本传输协议(HTTP ...
- JAVAEE 和项目开发(第三课:HTTP的请求头和请求方式)
HTTP 协议之请求格式 请求格式的结构:请求行:请求方式.请求的地址和 HTTP 协议版本 请求头:消息报头,一般用来说明客户端要使用的一些附加信息 空行: 位于请求行和请求数据之间,空行是必须 ...
随机推荐
- RxJava用法
首先导入依赖: implementation 'io.reactivex.rxjava2:rxjava:2.2.9'implementation 'io.reactivex.rxjava2:rxand ...
- Spring Boot 学习摘要--关于配置
date: 2019-12-27 09:00:00 updated: 2019-12-30 13:20:00 Spring Boot 学习摘要--关于配置 学习教程来自:B站 尚硅谷 1. 关于配置 ...
- 【垃圾回收-CMS】Java内存回收实践经验 防止内存报警
jdk6和7服务器端(-server) 默认的新生代的垃圾回收器为:PS Scavenge,老年代默认的垃圾回收器为:PS MarkSweep 目前项目使用了jdk7,tomcat7,经常出现内存堆使 ...
- C#/WPF 使用的Task线程程序缺依旧响应缓慢问题
问题:C#/WPF 使用的Task线程程序缺依旧响应缓慢问题 摘要:相信很多做WPF的开发者在请求接口的时候会去采用开一个线程Task去请求接口.避免UI卡主等等.但有一个问题是但开的线程比较多的情况 ...
- 数据结构(C++)——链栈
结点结构 typedef char ElemType; typedef struct LkStackNode{ ElemType data; LkStackNode *next; }*Stack,SN ...
- 【转】Setting up SDL Extension Libraries on Visual Studio 2010 Ultimate
FROM:http://lazyfoo.net/tutorials/SDL/06_extension_libraries_and_loading_other_image_formats/windows ...
- 02.django配置跨域并开发测试接口
1.创建一个测试项目 1.1 创建项目和APP '''1.创建项目和APP''' django-admin startproject BookManage # 创建项目 python mana ...
- Fira Code字体安装与配置
俗话说,工欲善其事,必先利其器.算法固然重要,但真正实践也很重要. 一个字体的好看程度,直接决定了写代码和看代码的心情.比如这样: 代码1: #include <iostream> #in ...
- logback日志打印sql
今天整合springboot2 + mybatis + logback 遇到了在日志中sql打印不出来的坑,在网上找了好久,都不是我遇到的问题,这里吐槽一下下现在的博客质量,好多都是抄袭的,也没有标注 ...
- python开发基础(二)-运算符以及数据类型
##运算符 算数运算符: ---> 赋值运算符 >>>返回结果为值 + # 加 - # 减 * # 乘 / # 除以 ** # 幂运算 % # 取余数 // # 取商 #### ...