有了url,mimetype、状态码, 能够基本满足用户的需求,但是,很多时候一个网站不单纯只是不断从服务端获取资源并做渲染,可能还需要做一些数据的提交、删除等功能。所以浏览器定义了8种方法来表示对于不同请求的操作方式,当然最常用的还是Get和Post,我觉得,要不是
Get方法不支持大数据的传输,估计很多同学Post都不会去使用。

GET:一般是用于客户端发送一个URI地址去获取服务端的资源(一般用于查询操作),Get不支持的传输数据有限制,具体限制由浏览器决定

POST:一般用户客户端传输一个实体给到服务端,让服务端去保存(一般用于创建操作)

PUT:向服务器发送数据,一般用于更新数据的操作

DELETE:客户端发起一个Delete请求要求服务端把某个数据删除(一般用于删除操作)

HEAD:获得报文首部、

OPTIONS:询问支持的方法、

TRACE:追踪路径、

CONNECT:用隧道协议连接代理

在REST架构风格中,有严格规定对于不同的请求类型要设置合适的请求方法。也是避免出现因为乱用导致混乱的问题。这里提到了REST架构,现在很多同学都在写REST,有没有人能够明白为什么要定义REST这个架构风格?

我个人认为是这样

1. 随着服务化架构的普及,http协议的使用频率越来越高

2. 很多人在错误的使用http协议定义接口,比如各种各样的命名,什么getUserInfoById,deleteById之类的、有状态和无状态请求混用。

3. 对于http协议本身提供的规则并没有很好的利用

所以,为了更好的解决这些问题,干脆就定义一套规则,这套规则并没有引入新的东西,无非就是对http协议本身的使用做了一些约束,比如说

1. REST是面向资源,每一个URI代表一个资源

2. 强调无状态化,服务器端不能存储来自某个客户的某个请求中的信息,并在该客户的其他请求中使用

3. 强调URL暴露资源时,不要在URI中出现动词

4. 合理的利用http状态码、请求方法。

因此大家在参照这种标准去使用REST风格时,要明白你遵循的是什么以及要解决什么问题。

告诉服务器端当前请求的意图相关推荐

  1. docker命令行解析以及如何向服务器端发送请求(docker源码学习一)

    最近在看doccker的源码,最新的master分支(估计是1.12.4,因为最新的release是1.12.3)命令行解析全部都使用了第3方的包https://github.com/spf13/co ...

  2. python连接服务器代码_python服务器端收发请求的实现代码

    最近学习了python的一些服务器端编程,记录在此. 发送get/post请求 # coding:utf-8 import httplib,urllib #加载模块 #urllib可以打开网站去拿 # ...

  3. php 向服务器发放请求,PHP客户端向服务器端发送请求并向远程服务器发送服务器端请求...

    我的方案如下: >单击按钮时,客户端将向服务器端发送请求 >一旦服务器端收到请求,它将向远程服务器发送另一个请求以获得结果 >一旦响应到来,服务器端应该回应客户端的响应. 客户 $. ...

  4. 面试官:你能告诉我一个请求过来,Spring MVC 是如何找到正确的 Controller 的?

    前言 SpringMVC是目前主流的Web MVC框架之一. 我们使用浏览器通过地址 http://ip:port/contextPath/path进行访问,SpringMVC是如何得知用户到底是访问 ...

  5. C# 后台服务器端 Get 请求函数封装

    请求参数封装 /// <summary> /// 拼接 Get请求参数 /// </summary> /// <param name="parames" ...

  6. AJAX学习笔记(基本使用,请求参数传递,获取服务端响应,错误处理,低版本IE浏览器缓存问题及解决)

    1. Ajax实现步骤 创建ajax对象 let xhr = new XMLHttpRequest(); 告诉ajax请求地址及请求方式 xhr.open('get','http://www.exam ...

  7. day01【后台】环境搭建

    day01[后台]环境搭建 1.项目架构 众筹网整体架构如下:主要分为前台会员系统和后台管理员系统.前台会员系统采用 SpringCloud 分布式架构搭建,后台管理员系统采用 SSM 框架搭建 2. ...

  8. tcp三次握手后被马上rst_TCP为什么需要三次握手?

    我们都知道TCP连接的建立需要经历三次握手,为什么需要握三次手?握手的过程又是什么样的呢? 在探讨这些问题之前,我们需要先来了解TCP和IP的封装结构. TCP和IP的封装结构 IP数据包由TCP数据 ...

  9. java基于http协议客户端与服务器端的交互,通俗易懂客户端与服务器端交互原理(HTTP数据请求与HTTP响应,包括Servlet部分...

    经 常看到HTTP客户端与服务器端交互原理的各种版本的文章,但是专业术语太多,且流程过于复杂,不容易消化.于是就按照在 Servlet 里面的内容大致做了一些穿插.本来 连 Tomcat 容器 和 S ...

最新文章

  1. SpringSecurity csrf验证忽略某些请求
  2. zipaligin不是内部或外部命令,也不是可运行的程序
  3. Android 第十二课 使用LitePal操作数据库(记得阅读最后面的注意事项哦)
  4. HTML连载71-翻转菜单练习
  5. bat中文乱码_详解Windows下获取时间bat脚本总结,值得收藏
  6. ctf 改变图片高度_通过CRC32爆破修改图片的宽高 ctf-misc图片隐写
  7. 无SSH工具部署网站到火腿云
  8. 使用FFmpeg类库实现YUV视频序列编码为视频
  9. 软件工程小组第八次会议记录
  10. SQLSERVER2005发送邮件
  11. Java:计算圆的面积和周长
  12. oracle的ofs,windows2003+oracle ofs 双机
  13. UVA 488 Triangle Wave
  14. 计算机u盘病毒清除方式,U盘如何格式化和清理病毒
  15. 当一个SQL语句同时出现了where,group by,having,order by的时候,执行顺序和编写顺序...
  16. 网络版计算机化系统3q认证,实验室分析仪器3Q确认服务|分析仪器3Q认证服务|计算机系统认证确认服务...
  17. 上溯造型和下溯造性(解耦合)
  18. 内存占用过高的原因及解决方法
  19. MFC字体磅数与像素CImage
  20. 【CJY学习笔记】Redis容器的配置

热门文章

  1. http有哪些请求方法
  2. Spring Boot 2 (七):Spring Boot 如何解决项目启动时初始化资源
  3. jquery的2.0.3版本源码系列(2):21行-94行定义了一些变量和函数 jQuery=function(){}
  4. Spark 运行模式 standalong yarn
  5. 最全面的 MySQL 索引详解
  6. SOAP/Web Service/WSDL关系
  7. rfid6-写成platform驱动
  8. 前端笔记—第15篇js中的DOM操作
  9. 关于 UTXO 的思考
  10. sitecore系列教程之目标功能有什么新意?