资源和表述

1. 资源和表述

https://mp.csdn.net/postedit,在浏览器地址栏输入会向特定的服务器的URL发送一条HTTPS请求。一个web服务器可以管理许多不同的URL,并且每个URL被授予访问服务器上的不同数据。通常,URL就是一些事务的URL,比如一个产品,一个主页。这些用URL命名的事务的专业术语叫“资源”。

现在,我们将该资源发送HTTPS请求后,服务器会返回一个文档作为响应。该文档通常是一个HTML文档,但不论是何种文档,我们都将服务器的响应称作“资源的表述”。

2. 可寻址性

须知,每个URL仅代表一个资源,若非如此,我们就很难通过URL找到自己需要的资源,因此,可寻址性原则就是说每个资源应该有一个属于自己的URL。

3. 短会话(Short Session)

HTTP会话只维持在一次请求过程中,客户端发送请求,服务器进行响应,这意味着我们可以将手机关上一晚,第二天打开(从内部缓存中恢复),点击页面链接,发现依旧可以迅速响应。须知,当我们不发送HTTP请求的时候,服务器并不清楚我们的存在。

这项原则被称为“无状态性”。因为系统里面的客户端和服务器端都要保存状态:它们只是保存不同类型的状态。“无状态性”术语是指服务器不关心客户端的状态。

4. Get

在请求中,Get是一个HTTP方法,是一个绿色无害的方法,即HTTP动词。那何为HTTP方法?即HTTP方法是客户端告诉服务器端它想要如何操作一个资源的方法。Get的意思就是“把这个资源的表述返回给我”。

HTTP规范告诉我们,GET请求是为了获取一个表述而作的一次请求。该种类型的请求主观上并没有去改变服务器资源状态的意图。

5. 如何读取HTTP响应

第一部分:
      状态码,亦称响应码。状态码说明了请求目前的状态,例如,Get请求,返回状态码为200,这意味着请求成功得到响应。

第二部分:
       实体消息体(entity-body),亦称消息体(body),这部分是一个采用某种数据格式书写的文档,且能够被客户端所理解。因此,我们可以认为,实体消息体就是发送请求最终得到的表述。

第三部分:
        响应抱头,响应报头的发送顺序排在状态码和实体消息体之间,通常是一系列用于描述实体消息体和HTTP响应的键值对。其中Content-Type,它向HTTP客户端说明了如何理解实体消息体。因此,我们将Content-Type报头的值称为实体消息体的媒体类型(media type)。
           
6. HTTP POST

HTTP规范中这样描述POST:
1. 对现有资源的注解
2. 向布告栏、新闻组、邮件或类似的文章组发布消息
3. 向数据处理流程提供例如表单提交结果的数据块
4. 通过追加操作来扩充数据库

7. HTTP协议语义(Protocol Semantics)

尽管任何事物都可以成为一个资源,但是客户端并不能随心所欲地对资源进行任意的操作。所能进行的操作都是有规定的。在一个RESTFUL系统中,客户端和服务器端只能通过发送遵循预定义协议的协议来进行交互。

在web api的世界里,这个协议就是HTTP。API客户端可以通过发送一些不同类型的HTTP消息与API进行交互。

HTTP标准定义了8种不同类型的消息,只介绍前面六种
GET:
    获取资源的某个表述
    成功状态码:200

DELETE:
    销毁一个资源
    删除成功状态码:204(no content,表示服务器已经没有关于这条信息描述)
                   200(删除成功,返回该条信息的描述)
                   202(accept,意思是我稍后删除这个资源)
    如果已经删除成功,再一次执行delete,则会返回404(not found)或410(Gone)

POST:
    基于给定的表述信息,在当前资源的下一级创建新的资源
    状态码:201(created)
           202(accepted,着表示服务器打算按照提供的表述信息来创建一个资源,但现在还没有创建完            
                成)

PUT:
    用给定的表述信息替换资源的当前状态,即修改
    状态码:200或204
    

HEAD:
    获取服务器发送过来的报头信息( 不是资源的表述),这些报头信息是在服务器发送资源的表述的时候被一起发送过来的。

OPTIONS
    获取这个资源所能响应的HTTP方法

猜你喜欢

转载自blog.csdn.net/Abel_01_xu/article/details/84833437