在浏览器打开页面的时间里,浏览器与服务器究竟干了什么?
以chrome浏览器为例
1.chrome会先搜索自己的DNS缓存记录,再搜索操作系统自身的DNS缓存,都没有的话,读取本地host文件,仍没有的话,浏览器会发起一个DNS的系统调用请求。
一般是查看宽带运营商的服务器缓存,还是没有,会由运营商服务器发起一个迭代DNS解析请求,寻找根域(如com域)的顶级域的ip地址,然后找到所查找域(如baidu.com)的ip地址,然后在此地址找到域名的ip地址。
2.找到后运营商服务器把结果返回操作系统内核同时缓存地址。然后内核把结果给浏览器,最终得到ip地址。
3.域名解析完毕后,3次握手,建立tcp/ip连接。
chrome发送TCP连接请求,通过随机端口,通过层层路由设备,通过网卡,然后进入内核的Tcp/ip协议栈,防火墙过滤,最终到达web服务端。
4.三次握手建立起Tcp/ip连接后,浏览器就可以向服务器发送http请求了(get,post)。
5.服务器接收请求,处理参数,将结果返回给浏览器。
6.浏览器处理结果,渲染,并呈现给用户。
http头发送内容类型,服务器发送响应的日期,http状态码。
正文发送表单数据等。
请求方法:
GET:提取指定资源
POST:上传资源
PUT:指定位置更新
DELETE:删除资源
HEAD:提取指定资源源数据
TRACE:
OPTIONS:
状态码:
1XX:请求已经接受,在处理
2XX:处理完毕 。200:ok
3XX:需要继续处理(跳转)
4XX:客户端错误(请求语法错误等)。400:请求语法错误,401:请求没有授权,403:服务器端拒绝服务,404:请求资源不存在
5XX:服务器端错误 。500:服务器端发生不可预期错误,503:服务器端目前异常,过一会儿才能正常