http协议
浏览器输入www.google.com后都发生了什么?
一句话简单来说,用户敲入网址然后回车,浏览器程序发送一个Http的Get请求,获取google的首页。
稍微展开点
- DNS解析,浏览器获取域名对应的ip地址
- 与server端建立tcp长连接
- 生成http协议
- 通过tcp长连接发送http协议到服务器
- tcp消息路由
- 数据中心接收到协议并路由
- httpServer处理请求,返回响应
- 浏览器接收到完整的协议,浏览器断开tcp长连接
- 浏览器解析http协议并按照样式进行展示
这里的每个步骤都可以在展开来说,下面一个个分析
DNS解析,浏览器获取域名对应的ip地址
也就是上面说的第一个步骤“浏览器获取域名对应的ip地址”,这DNS是有很多的缓存的,而且绝大部分的域名解析请求都是通过缓存来完成的,而且更新这DNS的缓存还是相对比较慢的,所以很多大网站并不会主要依赖这DNS做故障的转移,太慢,但是大网站一般也会有多个DNS,主要目的并不是故障转移,而是在负载均衡。
慢也不是说DNS的服务商太菜,而是因为有缓存的存在,而且慢也是一个相对的1分钟对于很多电商来说也是慢的。
http://www.jianshu.com/p/58503b818619
与server端建立tcp长连接
生成http协议
通过tcp长连接发送http协议到服务器
tcp消息路由
发现不能直达,直接发送给网关?
数据中心接收到协议并路由
httpServer处理请求,返回响应
浏览器接收到完整的协议,浏览器断开tcp长连接
浏览器解析http协议并按照样式进行展示
cookie与session区别与限制 ### 这问题,乍看起来很简单,session存在服务器端,cookie存在客户端。但是这只是一个简单维度,下面详细分析下。
首先这两个东西存在的原因是因为http是个无状态的协议,http只管一次请求一次应答,下一次请求与上一次请求对于http协议来说就没什么关系了。而且服务器中存放session,也是需要有个sessionid进行传递过去的,一般这个session也是用cookie的方式传送给服务器的,使用cookie的方式相对安全。