HTTP具有HTTP Cookie。Cookies允许服务器跟踪用户状态,连接数,最后连接等。
HTTP具有持久连接(保持活动),可以从同一TCP连接发送多个请求。
HTTP具有HTTP Cookie。Cookies允许服务器跟踪用户状态,连接数,最后连接等。
HTTP具有持久连接(保持活动),可以从同一TCP连接发送多个请求。
Answers:
即使可以通过同一HTTP连接发送多个请求,服务器也不会对通过同一套接字到达的请求赋予任何特殊含义。这纯粹是一种性能,旨在最大程度地减少为每个请求重新建立连接所花费的时间/带宽。
就HTTP而言,它们仍然是单独的请求,并且必须自己包含足够的信息才能满足请求。那就是“无国籍”的本质。如果没有服务器知道的一些共享信息,请求将不会彼此关联,在大多数情况下,这些信息是cookie中的会话ID。
从维基百科:
HTTP是无状态协议。无状态协议不需要服务器在多个请求的持续时间内保留有关每个用户的信息或状态。
但是某些Web应用程序可能必须跟踪页面之间的用户进度,例如,当需要Web服务器为用户自定义Web页面内容时。这些情况的解决方案包括:
- HTTP cookie的使用。
- 服务器端会话,
- 隐藏的变量(当当前页面包含表单时),以及
- 使用URI编码的参数(例如/index.php?session_id=some_unique_session_code)进行URL重写。
使协议成为无状态的原因是不需要服务器跟踪多个请求的状态,而不是如果需要的话它也不能这样做。这简化了客户端和服务器之间的合同,并且在许多情况下(例如,通过CDN提供静态数据)使需要传输的数据量最小化。如果要求服务器维护客户端访问的状态,则发出和响应请求的结构将更加复杂。实际上,模型的简单性是其最大的特点之一。
因为无状态协议不需要服务器在多个请求的持续时间内保留有关每个通信伙伴的会话信息或状态。
HTTP是无状态协议,这意味着一旦交易结束,浏览器和服务器之间的连接就会丢失。
之所以将HTTP称为HTTP,是stateless protocol
因为每个请求都是独立执行的,无需知道之前执行的请求,这意味着一旦事务结束,浏览器与服务器之间的连接也会丢失。
使该协议产生的原因stateless
在于,在其原始设计中,HTTP是一个相对简单的file transfer protocol
:
即使在同一客户端,一个连接和另一个连接之间也没有保持任何关系。这简化了客户端和服务器之间的合同,并且在许多情况下将需要传输的数据量减到最少。
如果将HTTP协议指定为State Full协议,则浏览器窗口使用单个连接与Web服务器进行通信,以向Web应用程序发出多个请求。它们长时间处于空闲状态。即使客户端中的大多数连接都处于空闲状态,也可能导致达到Web服务器的最大连接数的情况。
我认为有人为“无状态”概念选择了一个非常不幸的名字,这就是造成整个误解的原因。这与存储任何类型的资源无关,而与客户端和服务器之间的关系有关。
客户:我将所有资源都保留在一边,并向您发送所有需要处理的重要物品的“清单”。做你的工作。
服务器:好的..让我负责过滤重要的内容以给您适当的答复。
这意味着服务器是客户端的“奴隶”,并且在每次请求后都不得不忘记其“主人”。实际上,STATELESS仅指服务器的状态。
https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_3