[go: nahoru, domu]

Stateless protocol: Difference between revisions

Content deleted Content added
No edit summary
Reverting edit(s) by 103.170.228.58 (talk) to rev. 1221489598 by Wikipedialuva: Unexplained content removal (RW 16.1)
 
(19 intermediate revisions by 18 users not shown)
Line 1:
{{shortShort description|A communicationCommunications protocol in which theno receiverinformation mustis notretained retainby sessioneither statesender fromor previous requests.receiver}}
 
A '''stateless protocol''' is a [[communication protocol]] in which the receiver must not retain [[Session (computer science)|session]] state from previous requests. The sender transfers relevant session state to the receiver in such a way that every request can be understood in isolation, that is without [[reference]] to session state from previous requests retained by the receiver.<ref>{{cite thesis |last=Fielding |first=Roy |date=2000 |title=Architectural Styles and the Design of Network-Based Software Architectures |type=Doctoral dissertation |publisher=University of California, Irvine |oclc=45706361 |url=https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm |section-url=https://www.ics.uci.edu/~fielding/pubs/dissertation/net_arch_styles.htm#sec_3_4_3 |section=3.4.3 Client-Stateless-Server (CSS) |access-date=2021-05-18}}</ref>
 
Line 12 ⟶ 11:
 
== Examples ==
An [[HTTP]] server can understand each request in isolation.<ref>{{cite webjournal |url=http://tools.ietf.org/html/rfc7230 |title=RFC 7230 - Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing|workwebsite=ietf.org |year=2014 |doi=10.17487/RFC7230 |access-date=20 August 2015|editor-last1=Fielding |editor-last2=Reschke |editor-first1=R. |editor-first2=J. |last1=Fielding |first1=R. |last2=Reschke |first2=J. |doi-access=free }}</ref>
 
Contrast this with a traditional [[File Transfer Protocol|FTP]] server that conducts an interactive session with the user. During the session, a user is provided a means to be authenticated and set various variables (working directory, transfer mode), all stored on the server as part of the session state.
Line 19 ⟶ 18:
There can be complex interactions between stateful and stateless protocols among different protocol layers. For example, HTTP, a stateless protocol, is layered on top of [[Transmission Control Protocol|TCP]], a stateful protocol, which is layered on top of [[Internet Protocol|IP]], another stateless protocol, which is routed on a network that employs [[BGP]], another stateful protocol, to direct the IP packets riding on the network.
 
This stacking of layers continues even above HTTP. As a workaround for the lack of a retained session state, HTTP servers implement various [[Hypertext Transfer Protocol#HTTP session|session management]] methods,<ref>{{cite web |title=session management methods reviewed |url=http://cookiebits.com/htm/tech.htm |work=C cookie bits |location=Toronto|url-status=live |archive-url=https://web.archive.org/web/20190213015423/http://cookiebits.com/htm/tech.htm |archive-date=2019-02-13 |access-date=2011-04-12 |quote=The following material is intended to introduce the reader to the various techniques that developers have used to implement session tracking on the Web. The main operational characteristics of each method are mentioned in addition to the shortcomings that have been observed in usage. Additional information on session management can be found by searching the Internet. […]}}</ref> typically utilizing a session identifier in an [[HTTP cookie]] referencing thea session state stored on the server, effectively creating a stateful protocol on top of HTTP.<ref name="statefulvstateless">{{cite news |title=Stateful vs Stateless Architecture |last=Dwyer |first=Gareth |work=Virtasant |date=18 November 2020 |url=https://virtasant.com/blog/stateful-vs-stateless-architecture-why-stateless-won/}}</ref> HTTP cookies violate the [[Representational state transfer|REST]] architectural style because even without referencing a session state stored on the server, they are independent{{Clarify|date=May 2023}} of session state (they affect previous pages of the same website in the browser history) and they have no defined semantics.<ref>{{cite thesis |last=Fielding |first=Roy |date=2000 |title=Architectural Styles and the Design of Network-Based Software Architectures |type=Doctoral dissertation |publisher=University of California, Irvine |oclc=45706361 |url=https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm |section-url=https://www.ics.uci.edu/~fielding/pubs/dissertation/evaluation.htm#sec_6_3_4_2 |section=6.3.4.2 Cookies |access-date=2021-05-24}}</ref>
 
== See also ==