- namespacing (URL)
- WebSockets only have global events
- might actually be global ("shut down server")
- might be context-sensitive ("add an item to the current to-do list")
- WebSockets only have global events
- request & response cycle, with semantics
- WebSockets only have one-off messages
- intrinsically carry the same meaning whether sent from the server or client
- responding to a specific message is outside the scope of the protocol
- WebSockets only have one-off messages
- protocol includes provision for metadata (headers)
- persistent connection with state
- no need to directly manage session state
- reconstructing session state from a data store
- validating currency of session between server and client
- cf. "when user logs out in client, server must destroy session"
- no need to directly manage session state
- data payloads are untyped strings
- application must estabish its own convention for enforcing type
- parsing & validation
- error response
- application must estabish its own convention for enforcing type