GET和POST方法是HTTP协议规定的。查了HTTP1.1的RFC,原文的专业性极强。下面是白话翻译,欢迎补充和指错。
  GET方法就是检索(以实体的形式)由请求uri所指定的资源。如果请求的uri指向数据产生的过程,应该把产生的数据应作为实体在响应中返回而不是源文本,除非源文件指向输出过程。
  如果请求消息包含if Modified-Since、if - unmodify - since、if - match、if - none - match或if - range头字段,则GET方法的语义将更改为“条件GET”。条件GET方法要求实体仅在头部的条件字段描述的情况下进行传输。条件GET方法旨在减少不必要的网络使用,它允许缓存的实体在不需要多个请求或传输客户端已经拥有的数据的情况下进行刷新。
  如果请求消息包含范围标头字段,GET方法的语义将变为“部分GET”。部分GET请求只传输实体的一部分。部分GET方法是为了减少不必要的网络使用,它允许在不传输客户端已有数据的情况下完成部分检索实体。
  当且仅当响应满足“某些”HTTP缓存需求时,对GET请求的响应是可缓存。
  安全性考虑略。
 
  POST方法用于向服务器发送请求报文。报文的body和start line被uri标识的资源是从属关系。POST被设计来实现以下功能:(1)现有资源的注释;(2)向公告栏、新闻组、邮件列表或类似的文章组发布消息;(3)向数据处理过程提供数据块,如提交表单的结果;(4)通过追加操作扩展数据库。
  POST方法执行的实际函数由服务器决定,通常依赖于请求uri。post实体从属于该uri,就像文件从属于父目录。
  响应报文:POST方法执行的操作如果不产生可由URI标识的资源,响应码可以是200 或204,是否包含实体看情况。如果服务器上存在资源,响应码应该是201,并包含一个实体,该实体描述响应状态并引用新资源,以及一个Location头。
  POST方法的响应不可缓存,除非响应包含适当的Cache-Control或Expires头字段。303响应可以用于指导用户代理检索可缓存资源       
  POST请求必须遵守某些消息传输要求。
  有关安全考虑略。
 
 
  总之,get方法的简单语义就是检索URI指定的资源。为了避免网络资源的浪费,协议允许响应使用缓存。post的简单语义就是向服务器发送数据,通常响应不可缓存。

GET和POST两种请求方法的区别(RFC翻译)的更多相关文章

  1. iOS学习——UITableViewCell两种重用方法的区别

    今天在开发过程中用到了UITableView,在对cell进行设置的时候,我发现对UITableViewCell的重用设置的方法有如下两种,刚开始我也不太清楚这两种之间有什么区别.直到我在使用方法二进 ...

  2. JS中的两种刷新方法以及区别和适用范围

    在项目中有一个人信息修改的页面,但是修改后显示的却是修改之前的内容,分析问题后发现查询语句写在了修改语句之前,有些某些需要又必须这么写,但是修改信息后先却显示之前的信息也太不科学了. 所以我就想用js ...

  3. 关于UIImage类的对象两种初始化方法的区别

    1.imageNamed: UIImage *image = [UIImage imageNamed:"]; UIImage的类方法 第一次读取图片的时候,先把这个图片放到缓存中,下次再使用 ...

  4. Android(java)学习笔记227:服务(service)之服务的生命周期 与 两种启动服务的区别

    1.之前我们在Android(java)学习笔记171:Service生命周期 (2015-08-18 10:56)说明过,可以回头看看: 2.Service 的两种启动方法和区别: (1)Servi ...

  5. Android(java)学习笔记170:服务(service)之服务的生命周期 与 两种启动服务的区别

    1.之前我们在Android(java)学习笔记171:Service生命周期 (2015-08-18 10:56)说明过,可以回头看看: 2.Service 的两种启动方法和区别: (1)Servi ...

  6. GET和POST两种基本请求方法的区别

    文章来源:http://www.cnblogs.com/logsharing/p/8448446.html GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一 ...

  7. GET和POST两种基本请求方法的区别(转)

    GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数. 你可能自己 ...

  8. 【转载】GET和POST两种基本请求方法的区别

    原文地址:http://www.cnblogs.com/logsharing/p/8448446.html GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一 ...

  9. 转:GET和POST两种基本请求方法的区别

    原文地址:GET和POST两种基本请求方法的区别 原文如下: GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二. 最直观的区别就是GET把参数包含在URL ...

随机推荐

  1. Python设计模式 - UML - 状态图(State Machine Diagram)

    简介 状态图主要用于描述对象在其生命周期中各种状态.状态之间的转换过程.触发状态转换的各种事件(条件)及执行的动作. 状态图构建步骤 - 找出适合用状态图描述的类.确定类中需要做状态图的重要对象 - ...

  2. rancher2.1.7安装nfs 存储类

    NFS存储类不建议作大规模存储,块存储建议采用CEPH(独立安装) NFS只作为外接存储与普通NGINX类的配置文件,业务配置文件建议走配置中心. 增加自定义商店 地址为:https://github ...

  3. 编写高效的 CSS 选择器

    高效的CSS已经不是一个新的话题了,也不是我一个非得重拾的话题,但它却是我在Sky公司工作之时,所感兴趣的,关注已久的话题. 有很多人都忘记了,或在简单的说没有意识到,CSS在我们手中,既能很高效,也 ...

  4. Codeforces Round #552 (Div. 3) C题

    题目网址:http://codeforces.com/contest/1154/problem/C 题目意思:小猫吃三种食物,A,B,C,一周吃食物的次序是,A,B,C,A,C,B,A,当小猫该天无食 ...

  5. 《Java从入门到精通》学习总结4

    1. 程序运行期间,大部分数据都在内存中进行操作,当程序结束时,这些数据将消失. 如果需要将数据永久保存,可使用文件输入流 / 文件输出流与指定的文件建立连接,将需要的数据永久保存到文件中. File ...

  6. java实现单例模式

    1.饿汉模式 public class Singleton{ private static Singleton instance = new Singleton(); private Singleto ...

  7. ERC20 token standard issues.

  8. IIS7如何实现访问HTTP跳转到HTTPS访问

    感谢原文作者,为方便后期查阅转载,原文链接:https://www.cnblogs.com/xiefengdaxia123/p/8542737.html 通常情况下我们是用的都是http的路径,对于h ...

  9. MySQL千万级数据库查询怎么提高查询效率

    在实际项目中,当MySQL表的数据达到百万级别时候,普通查询效率直线下降,而且当使用的where条件较多,其查询效率是让人无法容忍的.假如一个taobao订单查询详情要几十秒,可想而知的用户体验是多差 ...

  10. oracle 索引提升查询速度, in 和 exist 效率

    做记录: 今天有一个有153万条数据的表,发现查询很慢: select count(y) as transfereeNum,x from t_ast_subject_invest_order GROU ...