文档章节

POST和GET的区别

o
 osc_a9b6fe4t
发布于 2019/06/21 23:35
字数 999
阅读 0
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

POST和GET的区别?

POST和GET是什么?

  POST和GET是HTTP请求的两种方式,都可实现将数据从浏览器向服务器发送带参数的请求。

HTTP请求底层协议都是TCP/IP,所以两者没有本质的区别。

HTTP

HTTP是什么

HTTP:超文本传输协议。所有的WWW文件都必须遵守这个标准。

HTTP向服务器发送请求是TCP连接。HTTP服务器收到请求后向客户端返回一个状态行 比如“HTTP/1.1 200 OK”和

HTTP请求的组成

HTTP由四部分组成:

  • 请求行(request line):用于说明请求类型、要访问的资源路径、HTTP版本号(GET /index.html HTTP/1.1)
  • 请求头部(header):用于说明服务器要使用的附加信息
  • 一个空行
  • 请求数据(body):任意添加的数据

 

      

【图1.1 HTTP请求结构 图片来自https://www.runoob.com/http/http-messages.html

eg:

GET /books/?sex=man&name=Professional HTTP/1.1 
Host: www.wrox.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.6)
Gecko/20050225 Firefox/1.0.1
Connection: Keep-Alive
这里是空行

------------------------------------------------------------------------------

POST /index.html HTTP/1.1 请求方法 url 协议/版本号 Host: localhost 主机地址 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:10.0.2) Gecko/20100101 Firefox/10.0.2 发送请求的应用程序名称 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-cn,zh;q=0.5 通知服务端可以发送的语言 Accept-Encoding: gzip, deflate 通知服务端可以发送的数据压缩格式 Connection: keep-alive Referer: <a target=_blank href="http://localhost/" style="color: rgb(51, 102, 153); text-decoration: none;">http://localhost/</a> Content-Length:25 Content-Type:application/x-www-form-urlencoded 请求空行 标志着请求头结束,请求正文(请求体)的开始 username=aa&password=1234
 

GET方法

  GET是获取的意思,顾名思义就是获取信息。

  GET是默认的HTTP请求方法。

  GET方法把参数通过key/value形式存放在URL里面,如果参数是英文数字原样显示,如果是中文或者其他字符加密(Base64)URL长度一般有限制所以GET方法的参数长度不能太长。由于参数显示再地址栏所以不安全,一般需要保密的请求不使用GET。

POST方法

  POST是邮件的意思,顾名思义就像一封信一样将参数放在信封里面传输。它用于修改服务器上的数据,一般这些数据是应该保密的,就像信件一样,信的内容只能收信的人看见。例入当用户输入账号和密码登录时账号和密码作为参数通过HTTP请求传输到服务器,这时候肯定不能用GET方法将账号密码直接显示再URL上,这时候就应该用POST方法保证数据的保密性。

POST和GET的区别

  1. GET提交的数据放在URL中,POST则不会。这是最显而易见的差别。这点意味着GET更不安全(POST也不安全,因为HTTP是明文传输抓包就能获取数据内容,要想安全还得加密
  2. GET回退浏览器无害,POST会再次提交请求(GET方法回退后浏览器再缓存中拿结果,POST每次都会创建新资源)
  3. GET提交的数据大小有限制(是因为浏览器对URL的长度有限制,GET本身没有限制),POST没有
  4. GET可以被保存为书签,POST不可以。这一点也能感受到。
  5. GET能被缓存,POST不能
  6. GET只允许ASCII字符,POST没有限制
  7. GET会保存再浏览器历史记录中,POST不会。这点也能感受到。

总之,两者之间没有本质区别,区别就在于数据存储的位置。各自有适用环境,根据需求选择合适的方法即可。

还有哪些HTTP请求方法

GET和POST是最常用的HTTP请求方式。还有其他的请求方式。我没用过其他的,我只说我知道的把。以后遇到了再补充。

  • PUT:
  • HEAD
  • DELETE
  • ...

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Redis 分片实现--Redis Shard

redis-shard 是 Redis 分区的 Python API ,基于对 key 和 key tag 进行 CRC32 checksum 计算,可参考文章 http://antirez.com/post/redis-presharding.html . 该项目由知乎网开发。 使用限制...

匿名
2012/10/24
5.6K
0
J360-cloud SpringCloud系列一:分布式配置服务器ConfigServer

j360开源博客之 ---------------------------------------------------------- J360-Cloud系列 spring-cloud快速入门工程之j360-cloud-all:(欢迎star、fork) https://github.com/xuminwl......

Hi徐敏
2015/10/08
4K
14
通过Ajax进行POST提交JSON类型的数据到SpringMVC Controller的方法

现在在做的项目用到了SpringMVC框架,需要从APP接收请求的JSON数据,为了测试方便,所以直接先用AJAX进行测试,不过刚开始用平时用的ajax方法,提交请求会出现415或者400错误,经过研究,终于...

zchuanzhao
2015/10/10
1.6W
4
Elasticsearch 2.3.0 新增:查询更新接口update-by-query

查询更新接口是2.3.0增加新接口,这个接口目前是实验性的。此接口可能会在未来的版本中改变。此接口在索引中更新每一个文档,而文档的内容并没有改变的情况下使用,这在增加新的属性或者修改...

赛克蓝德
2016/04/07
5.3K
0
LET'S DJ:web.py无缝迁移到django

DO: 前提是必须要配置好django使用jinja2模版,保持与老项目模版引擎一致。 Django通用视图最基础的类是View,其他如TemplateView、RedirectView等都继承自它,具体用法参见:Django 通用视...

cwalet
2016/04/29
283
0

没有更多内容

加载失败,请刷新页面

加载更多

​copyright到底是什么意思?

前几天写了篇文章“使用Apache协议的是自由软件吗?”,里面提到copyright和copyleft的概念。 有读者提出疑问: “关于copyleft一词,我记得大约1998年前后,我给Stallman先生发了一封邮件,...

卫_sir
今天
7
0
集合去重复那些事(一)

-List<Object>去重遇到的坑,去校验数据库,根据对象内的字段值。供大家参考和尝试,如有问题及错误请留言。 1、反例:先看下这个for i 的从list中remove for (int i = 0; i < sysUserJobs....

CarlDing
25分钟前
14
0
负载均衡的高可用集群(5)-haproxy的介绍及负载均衡服务器部署

一、Haproxy介绍 HAProxy是一个特别适用于高可用性环境的TCP/HTTP开源的反向代理和负载均衡软件。实现了一种事件驱动,单一进程模型,支持非常大的并发连接,是因为事件驱动模型有更好的资源...

osc_qatrfv06
26分钟前
12
0
灵魂拷问,上 Kubernetes 有什么业务价值?

本文整理自 2020 年 7 月 22 日《基于 Kubernetes 与 OAM 构建统一、标准化的应用管理平台》主题线上网络研讨会。文章共分为上下两篇,本文为上篇,主要和大家介绍上 Kubernetes 有什么业务价...

阿里巴巴云原生
26分钟前
7
0
基于tomcat远程注入Filter复现

昨天看了一篇大佬的文章远程注入webshell的强大操作,瞬间感觉到了大佬的无敌,花了点时间复现了一下,以本文作为记录 复现环境: 1)jdk1.8.0_102 2)tomcat 8.5.57 3)fastjson-1.2.47 我首先...

国产大熊猫
27分钟前
28
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部