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. 分组\聚合\F\Q查询

    一.分组和聚合查询 1.aggregate(*args,**kwargs)  聚合函数 通过对QuerySet进行计算,返回一个聚合值的字典.aggregate()中每一个参数都指定一个包含在字典中的 ...

  2. 使用IDEA工具编写Python自动化脚本遇到的小问题

    1.无法编写代码:因为安装了IdeaVim,所以需要按i进入编辑模式才能输入 2.位于同一目录下的py文件,其中一个文件需要引入另一个文件from 模块名 import * 无法找到模块名:点击这两个 ...

  3. 23. Merge k Sorted Lists (JAVA)

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. E ...

  4. 从零开始学spring cloud(六) -------- Ribbon

    一.Ribbon介绍 Ribbon就是客户端侧负责均衡实现的一种方式,那么Ribbon是什么呢? Ribbon是Netflix发布的云中间层服务开源项目,其主要功能是提供客户端侧负载均衡算法.Ribb ...

  5. 监控服务器配置(一)-----Prometheus安装配置

    最近和朋友一起做的监控配置,拿出来共享一下 1.下载prometheus安装包(linux版)到 /opt/minitor/prometheus . 下载地址:https://download.csd ...

  6. php使用redis的有序集合zset实现延迟队列

    延迟队列就是个带延迟功能的消息队列,相对于普通队列,它可以在指定时间消费掉消息. 延迟队列的应用场景: 1.新用户注册,10分钟后发送邮件或站内信. 2.用户下单后,30分钟未支付,订单自动作废. 我 ...

  7. 在Centos7下搭建Socks5代理服务器

    在Centos7下搭建Socks5代理服务器 http://blog.51cto.com/quliren/2052776   采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器 ...

  8. Numpy 矩阵库(Matrix)

    Numpy 中包含了一个矩阵库 numpy.matlib, 该模块中的函数返回的是一个矩阵, 而不是 ndarray 对象. 一个 m * n de 矩阵是一个 有 m 行(row) n 列(colu ...

  9. docker常用操作备忘

    一.docker安装 参考资料:阿里云镜像加速1. 安装/升级Docker客户端 curl -fsSL https://get.docker.com | bash -s docker --mirror ...

  10. 第二阶段第五次spring会议

    昨天我对软件加上了写便签时自动加上时间的功能. 今天我将对初始页面进行加工和修改. 我用两个小动物作为按钮分别进入动物便签界面和植物便签界面,可以让用户自由选择. 明天我将尝试对软件进行添加搜索引擎的 ...