从浏览器输入URL到页面渲染的过程
零、背景
一个web安全工程师在学习web安全和web渗透时候,非常有必要了解整个WEB工作过程。
一、输入URL
这里是最基本的知识:URL是URI的一种实际应用,URI统一资源表示符,URL统一资源定位符。URL举例: https://www.xxx.com:443/index.php 前面是协议 https 然后是主机www.xxx.com 然后是端口 443,最后是资源在该主机上针对web系统根目录(通常为www)的相对路径。所以可以想象,根据WEB访问就是获取资源,已经知道端口、路径、协议,唯独缺乏对方的IP了,毕竟HTTP下层是TCP/IP嘛,所以这里就用到从域名(或者是主机名)获取其对应的IP地址。
二、解析IP地址
这里为啥不用DNS呢,是因为在windows里面不一定是用DNS解析的IP地址哦,还可能是netbios哈
DNS 解析顺序
在linux中一般先解析/etc/hosts中的静态配置的解析,如果不行再利用dns递归请求解析域名。在windows中一般是先dns cache(dns缓存),然后再hosts文件,最后是dns递归解析。
Netbios 解析顺序
首先这个只有windows才会有,一般只在局域网或域内生效,其解析顺序域操作系统也就是windows的版本有关系。另外和配置的模式有关系。一般的NetBIOS cache (NetBIOS缓存),然后是WINS Server和广播,最后是LMHOSTS。如果模式不一样,WINS服务器解析和广播的顺序有调整。
三、发送HTTP请求
其实这里未必是HTTP协议或者HTTPS协议,有可能是其他协议,但是HTTP(HTTPS)协议非常典型,这里就是以此为例进行讲解。这里发送HTTP请求,表明请求的资源或者提交的资源,在头部字段里会带有相应的身份验证信息、回话信息、登录状态信息和控制信息等。
四、服务器处理并返回响应报文
HTTP请求到大服务器后,服务器会进行处理,然后根据处理结果返回相应的返回包,包括返回状态、返回内容,头部字段中的对应的控制信息等。
五、浏览器渲染页面
现代浏览器的渲染过程如下:
- 1.解析HTML构建DOM树
- 2.构建渲染树
- 3.布局渲染树
- 4.绘制渲染树
从浏览器输入URL到页面渲染的过程的更多相关文章
- 一文摸透从输入URL到页面渲染的过程
一文摸透从输入URL到页面渲染的过程 从输入URL到页面渲染需要Chrome浏览器的多个进程配合,所以我们先来谈谈现阶段Chrome浏览器的多进程架构. 一.Chrome架构 目前Chrome采用的是 ...
- 从输入url到页面呈现的过程
从输入url到页面呈现的过程包括两个基本过程:网络通信和页面渲染 网络通信主要过程是 域名解析 -> TCP连接 -> HTTP请求 -> 服务端响应,返回HTML 页面渲染的主要过 ...
- 从输入URL到页面渲染完成 -戈多编程
1.输入URL地址 2.浏览器根据域名查询IP地址 3.浏览器发送HTTP请求到web服务器 4.服务器返回一个永久重定向响应 5.浏览器会跟踪重定向地址 6.服务器处理请求 7.服务器返回一个HTM ...
- 从输入URL到页面返回的过程详解
文章转自以为大神的博客;https://www.cnblogs.com/xianyulaodi/p/6547807.html#_labelTop 总结的很不错,看完收获颇多, 下面就是大神的文章,我只 ...
- 从输入url到页面展现的过程
先看一幅图:(下面的所有图我都进行拉伸压缩了 如果看不到 可以右键复制图片地址 然后到浏览器粘贴查看 不然显示不全图片) mac没有画图软件 不好意思 xmind做的 1. 输入网址 当 ...
- 输入url到页面返回的过程
输入url后,你看到了百度的首页,那么这一切是如何发生的呢? 这个问题之前.最近.我想以后肯定还会被问到,或者问到这样的题目,如果在百度框里输入查询的字符串开始,是怎么返回你需要的东西呢. 那这什么个 ...
- 输入URL到页面渲染
输入网址回车或者刷新页面到页面传染出来的整个流程 DNS 解析 HTTP三次握手 -> TCP/IP连接 浏览器发送请求 服务器返回请求的文件 (html) 浏览器渲染 1. DNS 解析 查找 ...
- 从浏览器输入url到页面加载完成都发生了什么
一个http请求的过程 简要介绍一下一个http请求的网络传输过程: DNS Lookup先获得URL对应的IP地址 Socket Connect浏览器和服务器建立TCP连接 Send Request ...
- 输入URL到页面加载过程
URL(uniform resource location) : 统一资源定位符,用来作为互联网上各种资源的标识符,可理解为身份证号 . 注意点:浏览器为了保证安全性,设定了跨域保护策略, 即窗口之间 ...
随机推荐
- 【DL】几种参数优化方法的比较
https://zhuanlan.zhihu.com/p/22252270 结尾的两张图不能更赞. PS:在用lstm做文本分类的时候,加了L2正则,把optim方法由之前的SGD换成Adam,效果提 ...
- Unity打包IOS和Android以及之间的交互
1.导出的Xcode工程 主要讲解Unity导出的Xcode工程的目录结构 2.导出的Android-Eclipse工程 主要讲解Unity导出的Android-Eclipse工程的目录结构 3.导出 ...
- JSP输出当前日期
如何在网页中动态交互,输出当前日期? <%@ page language="java" import="java.util.*" contentType= ...
- PHPCMS V9 全站通用日期时间标签
用PHPCMS V9 建站时,经常会用到时间标签,它是通用标签调用-日期时间格式化,适用全站. 1.日期时间格式化显示: a\标准型:{date('Y-m-d H:i:s', $rs['inputti ...
- [转] NGUI自适应
很多做移动终端开发的童鞋都可能遇到一个问题,就是如何自适应其实NGUI已经能帮我们实现,下面就告诉大家怎么整这个自适应.1,create a new ui 2,uiroot下添加uipanel(scr ...
- MTK 关闭安全模式
1.当 Android 设备在安全模式(Safe Mode)下工作时,任何的第三方应用程序或相关文件(主要为apk应用程序文件)都不可以使用,但可以使用 Android 设备的任务管理器选项进行卸载或 ...
- 一个非常好的C#字符串操作处理类StringHelper.cs
/// <summary> /// 类说明:Assistant /// 编 码 人:苏飞 /// 联系方式:361983679 /// 更新网站:http://www.sufeinet.c ...
- nyoj 1239 引水project (河南省第八届acm程序设计大赛)
题目1239 pid=1239" style="color:rgb(55,119,188)">题目信息 pid=1239" style="col ...
- vs2012修复问题
多装了一个.net framework4.5.1结果vs不能拥,借用了下面这个工具将vs2012从注册表中删除了 就能重装了 http://www.auslogics.com/en/software/ ...
- ios开发之--调试方法
概述 基本操作 全局断点 条件断点 开启僵尸对象 LLDB命令 概述 在开发项目的工程中,肯定会遇到各种各样的bug,且大多数的bug都和自己有关:那么在和bug斗智斗勇的过程中,如果能快速准确的一击 ...