(此文作为个人学习、回顾用,如有不足之处,请不吝指出。随理解深入,持续更新。)
当我们在浏览器在搜索栏上输入baidu.com的时候,到底发生了什么呢?经历的那些过程了呢。
一.输入URL
首先认识URL,统一资源定位符,用于定位互联网资源。其完整结构为
协议://用户名:密码@子域名.域名.顶级域名:[端口号]/目录/文件名.文件后缀?参数=值#标志
在浏览器地址常看见结构
协议://域名/目录/文件名
常见的协议:
http:超文本传输协议,端口443
https:用安全套接字层传送的超文本传输协议,端口80
ftp:文件传输协议
mailto:电子邮件传输协议
file:一般为本地电脑分享的文件
二.域名解析(DNS):
域名解决的了ip难记的问题
- 搜索浏览器缓存
- 系统缓存hosts文件
- 路由器缓存
- isp缓存
*根域名服务器(根→顶级→权根域)
dns劫持问题:将服务器里域名对应的ip地址替换掉。
三.建立TCP链接(三次握手)
TCP是一个端到端的可靠的面向连接的协议
四.发起http请求
http由头部和报文组成
无状态,无链接
五.服务器接受处理返回
接受:服务器安装有web sever管理入口,如apache nginx,lls等接受用户请求交给网站代理或反向代理到其他web服务器。
处理:mvc处理
六.浏览器处理
1.接受http返回状态码,响应头部,响应报文。
1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的操作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。