python测试框架-pytest
606 2023-04-03 02:44:44
REST不是一种协议,也不是一种文件格式,更不是一种开发框架。它是一系列设计约束的集合:无状态、将超媒体作为应用状态的引擎等。
访问web服务的流程:客户端向标识资源的URL发起一系列HTTP请求,然后服务器在响应中向客户端发送表述。随着时间的推移,客户端通过这些表述建立起了一个资源状态的全景图。最后,客户端发起一个意义重大的PUT、POST或者PATCH请求,将一个表述发送回服务器从而更改资源的状态。
资源一般是可以保存到计算机里面的事物。比如网页,电子文档,数据库的一条记录。在Web中,我们使用URL来为每个资源提供一个全球唯一的地址。将一个事物赋以URL,它就会成为一个资源。
资源状态指的是服务器中资源的状态。例如,服务器中有一个拥有三个邮件的邮件列表,那么邮件列表的状态就是拥有三个邮件的邮件列表。如果用户又发送了一条邮件,那么邮件列表的状态就变为拥有四个邮件的邮件列表。
当客户端对一个资源发起一个GET请求的时候,服务器会以一种有效的方式提供一个采集了资源信息的文档作为回应。这就是表述——一种以机器可读的方式对资源当前状态的说明。对于数据库中的一条记录,服务器可以用XML文档、JSON对象、逗号分隔的数值或者用来生成它的SQLINSERT语句来描述它。
我们通常都认为表述是服务器发送给客户端的东西,这是由于在我们上网的时候,发送的大部分的请求都是GET请求,我们一直都在请求获取表述。但是实际上,但是实际上,在POST、PUT或者PATCH请求中,客户端也会向服务器端发送表述,服务器随后的工作就是改变资源状态,这种情况下的表述反映的是将来的表述。
尽管任何事物都可以成为一个资源,但是客户端并不能随心所欲地对资源进行任意的操作。所能进行的操作是有规定的。在一个RESTful系统里,客户端和服务器端只能通过相互发送遵循预定义协议的消息来进行交互。