HTTP基于TCP,它是无连接的,其意义是每次请求服务端并不知道是不是同一来源
客户端 --------发送请求---------> 服务端
服务端 --------返回响应---------> 客户端
发送请求和返回响应的资源是根据url定位,比如:
http://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1
协议 主机 路径 get查询参数
客户端发送请求:
请求包含
-->请求方式(GET获取、POST创建、PUT更新、DELET删除)
-->路径与查询参数
-->HTTP版本
-->接收响应资源类型
-->如果是POST和PUT请求,还有请求体
服务端响应请求
响应包含
-->HTTP版本
-->响应状态码(200OK 等)
-->响应头(告知客户端如何控制缓存和Cookie)
-->响应体(返回的资源)
如何让服务器知道请求来自同一客户端
客户端:请求 + Cookie
服务端:session
Cookie + session是web保持会话的关键
HTTP2.0
与HTTP1.1不同的是,使用二进制传输数据,不再是文本;支持多路复用(建立连接后可一次发送多个HTTP请求);压缩HTTP headers;支持server push