`
wkf41068
  • 浏览: 453466 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Restful认识(3)

 
阅读更多
8.	HTTP
HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式: 
OPTIONS: 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性,请求查询服务器的性能,或者查询与资源相关的选项和需求 
 HEAD :向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息,请求获取由Request-URI所标识的资源的响应消息报头
 GET: 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app.中。其中一个原因是GET可能会被网络蜘蛛等随意访问,请求获取Request-URI所标识的资源。  
POST: 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改,在Request-URI所标识的资源后附加新的数据。  
 PUT: 向指定资源位置上传其最新内容,请求服务器存储一个资源,并用Request-URI作为其标识 
DELETE: 请求服务器删除Request-URI所标识的资源。  
 TRACE :回显服务器收到的请求,主要用于测试或诊断。  
 CONNECT: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器,保留将来使用。  
 当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。  
  HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当符合
GET/PUT/DELETE/PATCH方法:put,delete,get是幂等的,POST是不幂等的 
POST/PUT/DELETE/PATCH方法:不安全的,GET是安全的
9.	安全方法和幂等方法
1)安全方法
开发者应当意识到他们的软件代表了用户在因特网上进行交互,并且应当告知用户,他们正在进行的操作可能对他们自身或者其他人有未曾预料的重要影响。
特别地,对于GET和HEAD方法而言,除了进行获取资源信息外,这些请求不应当再有任何其他意义。也就是说,这些方法应当被认为是“安全的”。客户端应当使用其他“非安全”方法,例如POST,PUT及DELETE来以特殊的方式(通常是按钮而不是超链接)使得客户能够意识到可能要负的责任(例如一个按钮带来的资金交易)或者被告知正在请求的操作可能是不安全的(例如某个文件将被上传或删除)。
但是,不能想当然地认为服务器在处理某个GET请求时不会产生任何副作用。事实上,很多动态资源会把这作为其特性。这里重要的区别在于用户并没有请求这一副作用,因此不应由用户为这些副作用承担责任。
2)幂等方法
假如在不考虑诸如错误或者过期等问题的情况下,若干次请求的副作用与单次请求相同或者根本没有副作用,那么这些请求方法就能够被视作“幂等”的。GET,HEAD,PUT和DELETE方法都有这样的幂等属性,同样由于根据协议,OPTIONS,TRACE都不应有副作用,因此也理所当然也是幂等的。
假如某个由若干个请求做成的请求序列产生的结果在重复执行这个请求序列或者其中任何一个或多个请求后仍没有发生变化,则这个请求序列便是“幂等”的。但是,可能出现若干个请求做成的请求序列是“非幂等”的,即使这个请求序列中所有执行的请求方法都是幂等的。例如,这个请求序列的结果依赖于某个会在下次执行这个序列的过程中被修改的变量。
10.	HTTPS
超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。HTTPS连接经常被用于万维网上的交易支付和企业信息系统中敏感信息的传输
HTTPS与HTTP的差异
与HTTP的URL由“http://”起始且默认使用端口80不同,HTTPS的URL由“https://”起始且默认使用端口443。
HTTP是不安全的,且攻击者通过监听和中间人攻击等手段,可以获取网站帐户和敏感信息等。HTTPS被设计为可防止前述攻击,并(在没有使用旧版本的SSL时)被认为是安全的。
HTTP工作在应用层(OSI模型的最高层),但安全协议工作在一个较低的子层:在HTTP报文传输前对其加密,并在到达时对其解密。严格地讲,HTTPS并不是一个单独的协议,而是对工作在一加密连接(TLS或SSL)上的常规HTTP协议的称呼。
HTTPS报文中的任何东西都被加密,包括所有报头和荷载。除了可能的CCA(参见限制小节)之外,一个攻击者所能知道的只有在两者之间有一连接这一事实。


e]
分享到:
评论

相关推荐

    RESTful WebService

    下面写一个最简单的Hello World例子,以便对RESTful WebService有个感性认识。因为非常专业理论化的描述RESTful WebService是一件理解起来很痛苦的事情。看看例子就知道个大概了,再看理论就容易理解多了。

    RESTful Web Services Cookbook 中文免费版

    现在说起REST(表述性状态转移),相信大家一定都不会觉得陌生,因为人们对它的认识早已经过了WHAT和WHY的阶段。但在真正要将这种架构风格落地下来的时候往往又会让人有些不知所措,原因就在于我们对HOW关注的太少了...

    PHP编写RESTful接口

    首先我们来认识下RESTful Restful是一种设计风格而不是标准,比如一个接口原本是这样的: http://www.test.com/user/view/id/1 表示获取id为1的用户信息,如果使用Restful风格,可以变成这样: ...

    JavaWeb服务:构建与运行

    《Java Web 服务:构建与运行(影印版)》提供了对Java的API的一个全面介绍,...· 认识SOAP消息的结构 · 学习如何交付基于Java的RESTful Web服务和消耗商业RESTful服务 · 了解对基于SOAP和基于REST的Web服务的安全要求

    JAVA.WEB服务.构建与运行

     · 认识SOAP消息的结构  · 学习如何交付基于Java的RESTful Web服务和消耗商业RESTful服务  · 了解对基于SOAP和基于REST的Web服务的安全要求  · 学习如何在各种环境下部署JAX-WS服务  不管是学生还是有经验...

    百度地图开发java源码-restify_django_tutorial:restify_django_tutorial

    Transfer的缩写(不要试图去翻译它,你会发现三个字都认识,但合在一起就不知道它说啥了)。 要理解REST,首先在明确这几点: REST不是平台,不是软件,而是一套规范、一套倡议。就如同HTTP是一套规范,Google ...

    我所理解的RESTfulWebAPI[Web标准篇]

    由于REST仅仅是一种价格风格,所以它是与具体的技术平台无关的,也就是说采用REST架构的应用未必一定建立在Web之上,所以在正式介绍REST之前,我们先来简单认识一下Web。如果要问大家这样一个问题:“在过去半个世纪...

    om2m-java-client-api:对于Java开发人员来说,在享受其所有功能和服务的同时,开发基于“ Open M2M”服务器的解决方案是除业务问题之外的另一个问题。 正是基于这种认识,诞生了需要通过对象与服务器“ Open M2M”进行通信的API的需求。

    OM2M遵循具有开放接口的RESTful方法,以独立于基础网络来开发服务和应用程序。 它提出了一种在OSGi层之上运行的模块化体系结构,使其可以通过插件高度扩展。 它支持多种协议绑定,例如HTTP和CoAP。 提供了各种互通...

    REST基础及实例开发

    涵盖REST设计原则,资源识别方法,在Jersey下开发RESTful webservice实现转账业务,包括服务端,客户端源码,详细阐述HTTP的4个请求方法(GET,POST,PUT,DELETE)在REST中的应用,使你快速地认识及掌握REST

    SpringBoot项目校友社交系统.zip

    系统采用流行的B/S架构,前端通常使用HTML5、CSS3和JavaScript技术结合Vue.js或React框架来实现交互式的用户界面,后端则利用SpringBoot的轻量级特性进行快速开发,通过RESTful API与前端进行数据交换。系统的数据库...

    SpringBoot项目结合疫情情况的婚恋系统.zip

    系统基于SpringBoot框架开发,采用MVC架构,前端可能使用Vue.js、React等现代JavaScript框架,通过RESTful API与后端交互,实现数据的即时更新和高效处理。系统还可能集成了OAuth2.0等认证协议,确保用户数据的安全...

    SpringBoot项目社区疫情防控平台.zip

    前端使用现代JavaScript框架如AngularJS、React或Vue.js来构建一个动态和响应式的用户界面,后端由SpringBoot搭建,整合了Spring MVC、Spring Data等子项目来简化数据库操作和RESTful API的开发。 主要功能包括: ...

    识别:Google Summer of Code'19 | CCExtractor开发| 可怜的人的认识

    可怜的人的认识 CCExtractor开发下的Google Summer Of Code项目 该项目旨在提供Amazon Rekognition服务的免费替代方案。建立要在本地为开发环境设置项目,请查看此Wiki用法该项目目前支持特征卷曲人脸识别curl -i -X...

    Django Rest framework之认证的实现代码

    对RESTful API设计有一定了解 对django框架有一定认识,本身drf就是基于django做的 对python面向对象编程有了解(drf会对一些原生的django类做封装) 一、前言 在学习drf之前的时候,先简单说一下需要的预备知识...

    Kubernetes初探:总体概述及使用示例

    Kubernetes是Google开源的容器集群管理系统。它构建于docker技术之上,为容器化的应用...Kubernetes以RESTFul形式开放接口,用户可操作的REST对象有三个:1.pod:是Kubernetes最基本的部署调度单元,可以包含contain

    使用Istio治理微服务入门

    本文来自博客园,本文介绍微服务的“痛点”,以及我们将带领大家感性的认识一下Istio,希望对您的学习有所帮助。近两年微服务架构流行,主流互联网厂商内部都已经微服务化,初创企业虽然技术积淀不行,但也通过各种...

    小组项目

    您的节点服务器应该是RESTful的,并且遵循REST原则,至少要在我们从新手训练营中学到的程度上。 :raised_hand: 您不能使用任何外部UI库,包括但不限于Material UI,Bootstrap。入门 您有任务和团队。 你应该先做...

    项目-集团-电子商务

    您的节点服务器应该是RESTful的,并且遵循REST原则,至少要在我们从新手训练营学到的程度上。 :raised_hand: 您不能使用任何外部UI库,包括但不限于Material UI,Bootstrap。 入门 您有任务和团队。 你应该先做...

    TeslaJS:用于NodeJS的非官方Tesla API库

    封装Tesla RESTful API的非官方NodeJS库。 注意:如果您打算购买特斯拉,则可以使用此推荐获得1,000英里的免费增压。 该库当前支持所有现有的Tesla车辆。 首先,重要的是要认识到,已经有几个非常好的Java库可用于...

Global site tag (gtag.js) - Google Analytics