在浏览器上输入一个URL,按回车后,这个过程发生了什么?

1、首先,浏览器地址栏输入了URL,先解析URL,检测URL地址是否合法

2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。

浏览器缓存:浏览器会记录DNS一段时间,因此,只是第一个地方解析DNS请求;

操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使用系统调用操作系统,获取操作系统的记录(保存最近的DNS查询缓存)

路由器缓存:如果上述两个步骤均不能成功获取DNS记录,继续搜索路由器缓存。

ISP缓存:若上述均失败,继续向ISP搜索。

3、如果没有上述缓存,则在发送HTTP请求前,需要域名解析(DNS解析),解析获取相关的IP地址。

4、浏览器向服务器发起tcp连接,与浏览器简历tcp三次握手

5、握手成功后,浏览器向服务器发送HTTP请求,请求数据包

6、服务器处理收到的请求,将数据返回至浏览器

7、浏览器收到HTTP响应

8、浏览器解码响应,如果响应可以缓存,则存入缓存

9、浏览器发送请求获取嵌入在HTML中的资源(HTML、css、javasc、图片、音乐。。。。).

10、浏览器发送异步请求

11、页面全部渲染结束

最新文章

  1. java中被各种XXUtil/XXUtils辅助类恶心到了,推荐这种命名方法
  2. iOS程序上传流程 2014年9月最新版
  3. 10. javacript高级程序设计-DOM
  4. HDU 2602 Bone Collector WA谁来帮忙找找错
  5. plist文件真机写入方法
  6. centos7 搭建docker内运行rabbitmq,然后再镜像ha方案的完全教程,暂时一个宿主机只能运行一个docker的rabbitmq,但是集群 ha都正常
  7. Struts 2简单配置分析
  8. 根据一个旅游网站的psd素材还原的静态页面
  9. spring aop 笔记2
  10. XShell删除键之类的不正常
  11. EmbossMaskFilter BlurMaskFilter 学习
  12. Content Provider 小结
  13. Android名片扫描识别系统SDK
  14. Guava快速入门
  15. 数据访问(DAO)
  16. .NET Core Dapper操作mysql数据库
  17. Ubuntu18 的超详细常用软件安装
  18. weblogic 安装部署详解
  19. CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)
  20. javascript预编译的过程

热门文章

  1. CentOS 7 开机延迟解决办法
  2. python selenium基于显示等待封装的一些常用方法
  3. WIFI CAT ET III Adapter Caterpillar ET3 New Arrival
  4. css的再深入7(更新中···)
  5. GIT操纵
  6. Configuration in ASP.NET Core(未完,待续)
  7. QuerySet API
  8. 本地构建:Gulp
  9. 如何插入谷歌地图并获取javascript api 秘钥--Google Maps API error: MissingKeyMapError
  10. mysql数据库通过二进制 -【恢复数据记录】