web页面请求历程
web页面请求历程
1)准备DHCP,UDP,IP和以太网
客户端要访问www.google.com的网站。
首先客户端要与网络相接,没有IP地址地址就不能做什么事情,所以客户端采取的一个网络相关的动作就是运行DHCP协议,以及本机的DHCP服务器获得一个IP地址/
1)操作系统生成一个DHCP请求报文,并将这个报文放到UDP报文段中,该UDP报文段则被放置在一个具有广播IP目的地地址(255.255.255.255)和源IP地址0.0.0.0的IP数据报中,因为客户端还不具有IP地址
2)包含DHCP请求报文的IP数据报则被放置到以太网帧中,该以太网帧具有目的MAC地址FF:FF:FF:FF:FF:FF,使该帧广播到与交换机连接的所有设备中(顺利的话也包括DHCP服务器)
3)客户端通过dhcp服务器获取一个IP地址
2)准备DNS和ARP
当在浏览器 页面输入www.google.com的时,他开启了一个长串事件,web浏览器通过生成一个TCP套接字开始了该过程,套接字用于向web浏览器发送HTTP请求,为了生成套接字,客户端需要知道www.google.com的IP地址。这需要DNS服务
1)客户端的操作系统生成一个DNS查询报文,开始了一个DNS查询请求。将字符串www.google.com放入DNS报文中,客户端将包含DNS请求报文的的数据报放入一个以太网帧中,该帧将发送(在链路层)到网络的网关路由器。为了获取该网关路由器的MAC地址,需要是要ARP协议。
2)客户端便开始生成了一个具有目的IP地址的ARP查询报文,将该ARP报文放置在一个以太网帧中,交换机将该帧交付给所有链接的设备,包括网管路由器
3)网关路由器收到请求以后 ,会准备一个ARP回答,再有交换机交付给客户端
4)现在客户端能够使用包含DNS查询的以太网帧寻址到网管路由器的MAC地址,客户端向交换机发送该帧,交换机在将该帧交付给网管路由器。
3)域内路由选择DNS服务器
1)网关路由器收到并抽取包含DNS查询的IP的数据包,路由器查询该数据报的目的地址将包含DNS查询的IP数据包到达了DNS服务器。DNS服务器抽取到 DNS查询报文,在他的DNS数据库中查找名字www.google.com,找到包含对应www.google.com的IP地址。该DNS服务器形成一个包含这种主机名到IP地址映射的DNS回答报文,并将DNS回答报文放入UDP的报文段,该报文段警网络交付到客户端,最后从DNS报文中抽取着出www.google.com的IP地址。
4)客户于服务器的交互。TCP和HTTP
客户端有了www.google.com的IP地址,他能够生成TCP套接字,该套接字用于项www.google.com发送HTTP GET报文。经过TCP三次握手建立了一个连接。www.google.com的HTTP服务器从TCP套接字读取HTTP GET报文,生成一个HTTP响应报文,将请求的web页面内容放入HTTP响应报文中,并将报文发送进TCP套接字。
包含HTTP回到报文的数据报通过网络转发,到达客户端,客户端从套接字中读取HTTP响应,从HTTP响应体中抽取web页面的html,并最终显示web页面。
web页面请求历程的更多相关文章
- 从插上网线到web页面请求,究竟发生了哪些过程?(计算机网络篇)
一.说在前头 好久没有更新博客了,汗颜,最近忙于各种实验与报告,但是还是要抽时间总结一下学的东西.欢迎转载,但是要注明出处哦(=^ ^=). 最近学了计算机网络,正好总结一下.本篇博客的大部分是跟计算 ...
- Web页面解析过程(浅)
web页面流程 域名解析DNS 域名解析:把域名指向网络空间IP,让人们通过简单的域名访问Web网站的服务. DNS:域名系统 DNS服务器:记录着域名及其对应的IP地址 解析域名: 浏览器中输入 ...
- 将请求挂载至WEB页面
有两种方式 1.使用标准的方式,在某个菜单下面直接加入标准功能 提交请求(FEM_FWK_SUBMIT_REQ),然后即可在页面上提交请求. 2.将指定请求定义成功能,在WEB页面使用功能直接提交指 ...
- Web应用请求和响应 HTTP相关
(1)请求:浏览器以HTTP协议的方式提交请求到服务器 (2)响应:服务器以HTTP协议的方式响应内容到浏览器 注意:HTTP是WEB大众化非安全协议 HTTPS是WEB安全协议,是基于HTTP协议的 ...
- base64:URL背景图片与web页面性能优化
一.base64百科 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,可用于在HTTP环境下传递较长的标识信息. 某人: 唉,我彻底废柴了,为何上面明明是中文,洒家却看不懂嘞,为什 ...
- 如何把报表放到网页中显示(Web页面与报表简单集成例子)
1.问题描述 现在用户开发的系统基本上趋向于BS架构的浏览器/服务器模式,这些系统可能由不同的语言开发,如HTML.ASP.JSP.PHP等,因此需要将制作好的报表嵌入到这些页面中. FineRepo ...
- X5的UI部分和传统Web页面开发的差异
http://doc.wex5.com/different-with-std-web-ui/#1 X5的UI部分和传统Web页面开发的差异 WeX5是跨端移动开发框架,BeX5是基于WeX5的企业快速 ...
- 【转】Hadoop web页面的授权设定
转载自过往记忆(http://www.iteblog.com/)本文链接地址: <Hadoop web页面的授权设定>(http://www.iteblog.com/archives/98 ...
- Java用webSocket实现tomcat的日志实时输出到web页面
原文:http://blog.csdn.net/smile326/article/details/52218264 1.场景需求 后台攻城狮和前端攻城狮一起开发时,经常受到前端攻城狮的骚扰,动不动就来 ...
随机推荐
- Docker—备份、恢复及迁移
用容器生成镜像 [root@git docker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e950a988d ...
- P5436 【XR-2】缘分
P5436 [XR-2]缘分 题解 很显然给出一个n,要想使缘分最大,一定要选 n 和 n-1 对吧 但是这里有一个特盘,当 n=1 时,缘分应该为1 而不是0 代码 #include<bits ...
- 【转】c语言动态与静态分配
https://blog.csdn.net/qq_43519310/article/details/85274836 https://blog.csdn.net/qq_38906523/article ...
- 让Socket穿透Windows防火墙
原文地址:https://blog.csdn.net/zuishikonghuan/article/details/48030539 创建了ServerSocket以后,并不是没事了,其实上,为了系统 ...
- Mimikatz 攻防杂谈
前几天看到了老外一篇讲 mimikatz 防御的文章,感觉行文思路还不错,但是内容稍有不足,国内也有一篇翻译,但是只是照着错误翻译的,所以就萌生了把那篇优秀文章,翻译复现,并加入其它一些内容,本文只是 ...
- Android地图开发获取sHA1值方法
public static String sHA1(Context context) { try { PackageInfo info = context.getPackageManager().ge ...
- Socket上自定义协议总结
TCP只是一个可靠传输的通信管道,上层协议要你自己定的,通俗来说就是发送方和接收方的约定 自定义协议的核心有两个:1. 控制码2. 流程控制 用Socket进行通信,发送的数据包一定是有结构的,类似于 ...
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_5 JdbcTemplate在spring的ioc中使用
resources下新建File文件 bean.xml 配置jdbcTemplate 注入DataSource 新建测试方法 复制demo1改个名字叫做demo2 编写Insert的方法
- 前端UI框架搜集
网址:https://blog.csdn.net/will5451/article/details/80652429?utm_source=blogxgwz6 网址:https://www.cnblo ...
- Jenkins Pipeline 语法
Pipeline语法 先讲Declarative Pipeline,所有声明式管道都必须包含在pipeline块中: 123 pipeline { /* insert Declarative Pipe ...