第11章
客户端识别与cookie机制
cookie---强大且高效的持久身份识别技术
Referer 首部提供了用户来源的url,不能表示用户,但是能说明用户之前访问过那个页面---更好的理解用户浏览行为(打点???)
cookie 是当前识别用户实现持久会话的最好方式
会话cookie 和持久cookie -----区别是过期时间
cookie通常指包含一个服务器为了进行跟踪产生的独特识别码
让浏览器积累一组服务器特有的信息,每次访问服务器的时候都将这些信息提供给它
面试题目:从输入url到页面加载都发生了什么?
first answer:
1.DNS 解析
2.TCP 连接
3.HTTP 连接
4.服务器处理请求并返回HTTP请求报文
5.浏览器解析渲染页面
6.连接结束
second answer:
没有代理,简单HTTP请求 IPV4
1.浏览器查询缓存,如果缓存存在跳到9
2.浏览器询问操作系统服务器的ip地址
3.操作系统做DNS查询,返回IP地址给浏览器
4.浏览器打开服务器的tcp连接
5.浏览器通过Tcp连接发送HTTP请求
6.浏览器接收HTTP响应并且可能关掉TCP连接,或者是重新使用连接处理新请求。
7.浏览器检查HTTP响应是否为一个重定向(3xx 结果状态码 ),一个验证请求(401),错误(4xx 5xx)等等,这些都是不同响应的正常处理(2xx).
8.如果响应可缓存,将存入缓存。
9.浏览器解码响应(例如:如果它是gzziped压缩)。
10.浏览器决定如何处理这些响应(例如,它是HTML页面,一张图片,一段音乐)。
11.浏览器展现响应,对未知类型还会弹出下载对话框。
这里边的每个步骤都可以长篇大论一番,当然还有很多东西与这些步骤平行发生。
301与302
301 永久性转移
302 暂时性转移
详细来说,301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址
,这个地址可以从响应的Location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)——这是它们的共同点。
他们的不同在于。301表示旧地址A的资源已经被永久地移除了(这个资源不可访问了),
搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址;302表示旧地址A的资源还在(仍然可以访问),
这个重定向只是临时地从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址
tcp三次握手协议
包括一次同步报文、一次同步-应答报文,一次应答报文
为啥是三次
“三次握手”的目的是“为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误”
tcp四次挥手
客户端想分手了
服务器也想分手
服务器准备好分手
分手
服务器端接受到这个确认包之后,关闭连接,进入CLOSED状态。
客户端等待2MSL之后,没有收到回复,确保服务器端确实为关闭了,客户端也关闭连接,进入CLOSED状态。