普通HTTP请求和REST请求之间的区别是什么

时间:2016-07-07 07:39:36

标签: rest http

我在理解普通HTTP请求和REST请求之间的区别时遇到了一些问题。我检查了一些请求和回复,它们看起来和我一样。如果它们确实相似,那么Web服务如何区分正常的HTTP请求和REST请求。

是的,我知道REST是一种定义如何使用HTTP的架构风格。

2 个答案:

答案 0 :(得分:5)

REST 代表重新表示 S tate T 转移。此体系结构协议无关,但经常通过HTTP协议实现。

REST架构风格在Roy Thomas Fielding博士论文的chapter 5中定义(如果您对REST感兴趣,则必须阅读)。并且在这种架构风格中添加了以下约束:

REST请求(可以是通过HTTP协议实现REST体系结构时的HTTP请求)必须包含服务器要理解的所有信息,而不利用服务器上的任何存储上下文。

例如,如果您正在对受保护资源(即需要身份验证的资源)执行请求,则该请求必须包含要进行适当身份验证的凭据。在REST中,服务器端没有会话状态。

这就是定义REST stateless约束的方式:

  

5.1.3 Stateless

     

[...]从客户端到服务器的每个请求必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。因此,会话状态完全保留在客户端上。 [...]

答案 1 :(得分:0)

REST请求与HTTP请求没有区别。网络服务不必弄清楚请求的类型。通常,Web服务部署在特定的URL(如http://service.test.com?q=myquery)下,并使用GET数据(如本例所示)或POST数据,您可以将特定数据传输到服务。

然后,RESTful Web服务通常会返回JSON或XML或类似内容。 Web服务的响应接收者必须知道期望的输出。