HTTP
Application level protocol
Defines:
- message syntax
- types of messages exchanged
- message semantics
Message Syntax
- base types
- flat types (array or structure)
- complex types (has pointers)
Conversion Strategy:
- Canonical Intermediate Form (send and rec side convert internal representation to agreed upon format)
- Receiver Makes Right (sender includes data about it's internal representation)
Tagging:
- untagged (agree on type, length, and location of data)
- tagged (include in message tags about the data) (json and protobuf)
start line
message header
message body
Types
options
get
head
post
put
delete
trace
connect
connection
- client initiate TCP connection
- client requests file
Versions:
1.0 first
1.1 persistent connections (no handshake per file)
2.0 multiplexed requests (requests objects in parallel)
3.0 HTTP over QUIC instead of TCP