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. SQLServer “无法对数据库'XXX' 执行删除,因为它正用于复制”的解决方法

    “无法对数据库'XXX'执行删除,因为它正用于复制” 解决办法: 执行  sp_removedbreplication 'XXX'  这个语句的解释是:从数据库中删除所有复制对象,但不更新分发服务器上 ...

  2. Git简单生成生成公钥和私钥方法

    Git简单生成生成公钥和私钥方法 Git配置 Git安装完之后,需做最后一步配置.打开git bash,分别执行以下两句命令 git config --global user.name “用户名” g ...

  3. Swift UITableView嵌套UICollectionView点击事件冲突(点击事件穿透)

    不管是啥都响应tableviewcell class JYShopCertificationCell: UITableViewCell { override func hitTest(_ point: ...

  4. 内置函数-map

    ret = map(abs,[-1,1,2,3]) print(ret) for i in ret: print(i) l = [1,-2,3,6,8,-7] l.sort(key=abs) prin ...

  5. MVC开发T4代码生成之一----文本模板基础

    T4文本模板 T4全写为Text Template Transformation Toolkit,是一种编程辅助工具,用来使程序代码自(懒)动(猿)生(福)成(利)的工具.MVC开发中大量使用了T4模 ...

  6. stark组件开发之组合搜索高级显示和扩展

    上一篇,我只是做了. 默认的显示. def __iter__(self): '''默认显示. 用户可以自定制''' if isinstance(self.queryset_or_tuple, list ...

  7. scrapy 爬取斗罗大陆漫画

    # -*- coding: utf-8 -*- import scrapy import json import os import urllib import time from scrapy.ht ...

  8. python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出

    在python中,要输出json格式,需要对json数据进行编码,要用到函数:json.dumps json.dumps() :是对数据进行编码 #coding=gbkimport json dict ...

  9. 包管理工具-yarn

    今天知道了一个新的包管理工具叫yarn,总结如下: 如果你知道npm的使用过程,那么yarn你就觉着相见恨晚呐...... npm存在的问题: >安装的时候无法保证速度的一致性 >安全问题 ...

  10. 上传文件,经过Zuul,中文文件名乱码

    问题描述: 在学习<SpingCloud与Docker微服务架构实战>8.7节 使用Zuul上传文件,测试通过Zuul上传中文文件时出现,文件名.目录名或卷标语法不正确异常:但是直接通过上 ...