我在理解普通HTTP请求和REST请求之间的区别时遇到了一些问题。我检查了一些请求和回复,它们看起来和我一样。如果它们确实相似,那么Web服务如何区分正常的HTTP请求和REST请求。
是的,我知道REST是一种定义如何使用HTTP的架构风格。
答案 0 :(得分:5)
REST 代表重新表示 S tate T 转移。此体系结构协议无关,但经常通过HTTP协议实现。
REST架构风格在Roy Thomas Fielding博士论文的chapter 5中定义(如果您对REST感兴趣,则必须阅读)。并且在这种架构风格中添加了以下约束:
REST请求(可以是通过HTTP协议实现REST体系结构时的HTTP请求)必须包含服务器要理解的所有信息,而不利用服务器上的任何存储上下文。
例如,如果您正在对受保护资源(即需要身份验证的资源)执行请求,则该请求必须包含要进行适当身份验证的凭据。在REST中,服务器端没有会话状态。
这就是定义REST stateless约束的方式:
[...]从客户端到服务器的每个请求必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。因此,会话状态完全保留在客户端上。 [...]
答案 1 :(得分:0)
REST请求与HTTP请求没有区别。网络服务不必弄清楚请求的类型。通常,Web服务部署在特定的URL(如http://service.test.com?q=myquery
)下,并使用GET数据(如本例所示)或POST数据,您可以将特定数据传输到服务。
然后,RESTful Web服务通常会返回JSON或XML或类似内容。 Web服务的响应接收者必须知道期望的输出。