三方面搞定http协议之“请求方法”
我所熟知的请求方法一共有六种:
GET 请求指定的页面信息,并返回实体主体。
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)
PUT 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE 请求服务器删除指定的页面。
HEAD 返回的响应中的报头
OPTIONS 查看服务器的性能。
而我们平时最常接触的,就是前三种:GET,POST,PUT。关于get和post的区别,post和put的区别的讨论,一直都是http请求方法中无法回避的问题。
现在,我们就深入地探究一下第一个问题: GET和POST有何区别?
1,GET用于向服务器查询数据,而POST用于更新服务器的数据;
2,GET传输数据较小,而POST传输数据较大;(因为浏览器地址栏对URL的长度是有限制的,而GET请求的数据正是作为search参数嵌在URL中,所以它的请求数据会受到影响;
而POST呢?它请求的数据是放在请求报文的主体中的,并不受影响,所以传输数据较大)
3,POST比GET更安全。(正如2所解释的那样,因为GET请求的数据是放在URL中的,而URL是会显示在地址栏的,用户看不到报文的主体内容,但会轻易注意到地址栏,所以如果
GET请求的数据包括一些用户名密码之类的敏感信息,那就真的很不安全了) 没错,这就是GET和POST的真正区别了,接下来看第二个历史大问题:POST和PUT的区别 POST和PUT区别在哪里?
根本区别-->POST方法不是幂等的,而PUT方法是幂等的。
所以这个“幂等”是什么鬼?简单来说,幂等就是“无论你操作多少次,都是操作在一个对象上”,所以PUT方法操作在原来的对象上,是对原来已存在的对象的更新;而POST
是创造一个新对象,并把这个新对象加到服务器里。
就比如我现在写了一篇新博客,要提交上去,就应该用POST,因为我这个是新博客嘛,跟原来的博客没关系,属于新增的对象;而我写完这篇博客后发现有错别字,然后我
进行修改,修改好后再提交上去,这时候就应该用PUT,因为我只是想对原来这篇博客进行小小的修改更新罢了。
体会一下。
三方面搞定http协议之“请求方法”的更多相关文章
- 三方面搞定http协议之“报文模型”
关于http协议,这一块的知识其实相当大,但是作为一个前端开发者来说,我觉得只要知道三方面的内容就足矣把http协议是个什么东西解释清楚了.而这三方面,就是http的报文模型,请求方式以及状态码. 这 ...
- 三方面搞定http协议之“状态码”
当我们向服务器请求数据的时候,服务器会给我们一个反馈,告诉我们对待我们的请求,服务器处理得怎么样了,而这个反馈,是通过数字来传达的,这个数字就叫状态码. 状态码分为以下几种: 1xx:指示信息--表示 ...
- iOS开发三步搞定百度推送
iOS开发三步搞定百度推送 百度推送很简单,准备工作:在百度云推送平台注册应用,上传证书. 步骤一: 百度云推送平台 http://push.baidu.com/sdk/push_client_s ...
- windows+mysql集群搭建-三分钟搞定集群
注:本文来源: 陈晓婵 < windows+mysql集群搭建-三分钟搞定集群 > 一:mysql集群搭建教程-基础篇 计算机一级考试系统要用集群,目标是把集群搭建起来,保证一 ...
- 转:解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别
解析HTTP协议六种请求方法,get,head,put,delete,post有什么区别 标准Http协议支持六种请求方法,即: 1.GET 2.POST 3.PUT 4.Delete 5.HEAD ...
- Spring Boot 集成 Ehcache 缓存,三步搞定!
作者:谭朝红 www.ramostear.com/articles/spring_boot_ehcache.html 本次内容主要介绍基于Ehcache 3.0来快速实现Spring Boot应用程序 ...
- HTTP协议扫盲(二)HTTP协议的请求方法、请求头和响应头
一.HTTP请求方法 Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST ...
- 几周内搞定Java的10个方法
不要将Java与JavaScript弄混了,Java的目标是“一次编译,到处调试”(呃,不对,是“到处运行”).简单来说,就是Java程序可以直接在任何设备上运行. Java语言是什么? 不管我们是否 ...
- 浅谈http协议六种请求方法,get、head、put、delete、post、options区别
标准Http协议支持六种请求方法,即: 1.GET 2.POST 3.PUT 4.Delete 5.HEAD 6.Options 但其实我们大部分情况下只用到了GET和POST.如果想设计一个符合RE ...
随机推荐
- HDU-6153 A Secret 扩展KMP
题意:求一个字符串的所有后缀在母串中的出现次数*后缀的长度的总和. 题目链接:http://acm.split.hdu.edu.cn/viewcode.php?rid=22147273 思路:先预处理 ...
- Unity3D协程yield的理解
Unity3D的协程概括地将就是:对于一段程序,你可以加上yield标明哪里需要暂停,然后在下一帧或者一段时间后,系统会继续执行这段代码.协程的作用:①延迟一段时间执行代码.②等某个操作完成之后再执行 ...
- LCD调试
(1) 液晶显示模式 并行:MCU接口.RGB接口.Vysnc接口 串行:SPI接口.MDDI接口 (2) 屏幕颜色 实质上即为色阶的概念.色阶是表示手机液晶显示屏亮度强弱的指数标准,也就是通常所说的 ...
- css之absolute温习
1.absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位.(父元素不仅可以是相对定位(relative)) 2.当绝对定位的元素找不到定位类型是非static定位 ...
- influence maximization 第二弹
Robust Influence Maximization 首先简要介绍一下这个问题:在一个社交网络图中寻找固定数量的节点,使得这些节点对所有节点的影响值尽可能的大.先对这个问题给出形式化的定义:给一 ...
- Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/ma ven/cli/Maven
此异常是由于jdk版本和maven版本不一致导致的 在maven官网上的说明是这样的:Maven 3.3+ require JDK 1.7 or above to execute - they sti ...
- Python3.* 和Python2.*的区别
许多Python初学者都会问:我应该学习哪个版本的Python.对于这个问题,我的回答通常是“先选择一个最适合你的Python教程,教程中使用哪个版本的Python,你就用那个版本.等学得差不多了,再 ...
- 9-Unittest+HTMLTestRunner不能生成报告解决方法
1.问题现象 在使用HTMLTestRunner生成测试报告时,出现程序运行不报错,但不能生成报告的情况. 刚开始找了很久没发现问题,后来加上打印信息,发现根本没执行生成报告这部分代码.最后网上找到原 ...
- CentOS6.2上安装pip
如果yum install pip执行失败.按如下步骤执行 首先安装epel扩展源: yum -y install epel-release 然后执行yum --disablerepo=epel -y ...
- [转]Kaldi语音识别
转:http://ftli.farbox.com/post/kaldizhong-wen-shi-bie Kaldi语音识别 1.声学建模单元的选择 1.1对声学建模单元加入位置信息 2.输入特征 3 ...