一、web流程
- 用户请求资源
- 浏览器打包用户请求并发送
- 服务器根据资源路径及参数,产生响应发回给浏览器
- 浏览器解析结果,渲染页面
二、具体实现
- URI转为服务器主机地址
- 浏览器http打包请求
- 创建TCP连接
- 浏览器发送请求
- 服务器处理请求
- 服务器响应请求,返回给浏览器
- 浏览器生成渲染树和DOM树渲染页面
- 处理页面嵌入资源和异步请求
- 非常规响应处理
1.URL到服务器主机
通过一个路径URL到服务器对应资源
通过DNS(domain name system)将域名和ip对应
DNS解析步骤:
- 浏览器缓存
- 系统缓存(操作系统)
- 路由器缓存
- ISP(internet service provider)缓存
- 递归搜索,从顶级域名服务器的根域名服务器开始查询
2. 打包HTTP请求
3. 创建TCP连接
一般是通过TCP,UDP不可靠
4. 浏览器发送请求
请求类型:
- GET
- HEAD
- POST
- TRACE:路由,经历的结点
- OPTIONS
- PUT:往服务器上放内容
- DELETE:在服务器上删出内容
5. 相关进程处理请求
监听端口号
- http:80
- https:443
- ftp:21
- ssh:22
6. 服务器响应
影响服务器生成结果
- 请求方法
- 路径
- query srting
- cookie
- 服务器配置
- 动态语言代码(php,java)
7. 浏览器渲染页面
浏览器下载和渲染是从上到下顺序
解析HTML生成DOM树
解析CSS生成渲染树:和所有样式一起解析
解析JavaScript:采用阻塞方式,不能并行下载和解析,为了防止修改DOM结构
8. 状态码
200 OK
301 moved permanently 重定向
-
304 not modified 本地缓存失效,向服务器验证,若未失效则返回304
Cache-Control:max-age=2592000 Expires:Fri, 22 Dec 2017 10:08:32 GMT
403 forbidden
404 not found 未找到资源
500 internal server error 内部服务器错误
502 bad gateway 网关错误