Http 请求报文包括请求行,请求头部和请求数据
(1) 请求行包括请求方法,url,http 版本号
(2) 请求头部可包含多行,每行由 "字段名 : 值" 格式组成,常见的有
User-Agent : Mozilla/4.0
Host : xx.xx.xx.xx
Accept-Encoding : gzip deflate
Accept-language : English
Cookie : ...
... ...
(3) 请求数据通常没有,可以包含 POST 表单内容等等
Http 应答报文包括状态行,相应头部和请求数据
(1) 状态行包括 Http 版本,状态码和状态值
例如:Http1.1 200 OK
或:Http1.1 404 FileNotFound
(2) 相应头部也可包含多行,格式与 Http 请求报文类似,常见的有
Content-Encoding : gzip
Connection : keep-alive
Set-Cookie : ...
(3) 请求数据一般为 Http 的文本等
GET, POST, HEAD, PUT, DELETE , CONNECT , TRACE , OPTIONS
Http1.0 :
Http1.1:
Cookie 和 Session 主要是为了解决 HTTP 无状态性的问题。
不同点在于 Cookie 保存在客户端的浏览器,实际上是一小段文本信息,多数由建立连接请求时由服务器颁发给客户端,用于下次连接时根据 Cookie 直接辨别 Client 的身份。
Session 主要用于服务器端对会话的存储,当一个客户端连接时,HTTP 服务器会给其分配一个 SessionID,并将该 SessionID 的对应的会话内容存储在内存,客户端可以使用 Cookies 或使用其他请求参数使用该 SessionID 与服务器端进行关联。
Cookie 可能存在安全性的问题,由于 Cookie 在客户端以文本形式存储,可能会被非法获取或篡改,一个可行的解决方案是可以将 Cookie 进行加密。
Session 由于对于每个连接需要开辟空间对会话信息进行存储,可能会加重服务器的负载,影响性能。
下面的博文提供了一个更加详细的解释:
https://blog.csdn.net/zx_emily/article/details/83024065
https://www.cnblogs.com/l199616j/p/11195667.html
https://segmentfault.com/a/1190000016806111