HTTP的基本特性
-
HTTP是简单的
虽然下一代HTTP/2协议将HTTP消息封装到了帧中,HTTP大体上还是被设计得简单易读。HTTP报文能够被人读懂,还允许简单测试,降低了门槛。
-
HTTP是可扩展的
在HTTP/1.0中出现的HTTP headers让协议扩展变得非常容易。
-
HTTP是无状态,有会话的
在同一个连接中,两个执行成功的请求之间是没有关系的。这就带来了一个问题,用户没有办法在同一个网站中进行连续的交互。
-
HTTP和连接
一个连接是由传输层来控制的,这从根本上不属于HTTP的范围。
HTTP能控制什么
以下是可以被HTTP控制的常见特性:
- 缓存
- 开放同源限制
- 认证(基本的认证功能可以直接通过HTTP提供,或用HTTP Cookies来设置指定的会话)
- 代理和隧道(通常情况下,服务器/或客户端是处于内网的,对外网隐藏真实IP地址。因此HTTP请求就要通过代理越过这个网络屏障)
- 会话
HTTP流
1、打开一个TCP连接:TCP连接被用来发送一条或多条请求,以及接受回应消息。
2、发送一个HTTP报文:HTTP报文(在HTTP/2之前)是语义可读的。
GET/HTTP/1.1
Host:developer.mozilla.org
Accept-Language:fr
3、读取服务端返回的报文信息:
HTTP/1.1 200 OK
Last-Modified:Tue,01 Dec 2009 20:18:22 GMT
Content-Length:29769
Content-Type:text/html
4、关闭连接或者为后续请求重用连接。