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.场景需求 后台攻城狮和前端攻城狮一起开发时,经常受到前端攻城狮的骚扰,动不动就来 ...
随机推荐
- 浏览器端-W3School-HTML:HTML DOM Area 对象
ylbtech-浏览器端-W3School-HTML:HTML DOM Area 对象 1.返回顶部 1. HTML DOM Area 对象 Area 对象 Area 对象代表图像映射的一个区域(图像 ...
- Git-Runoob:Git 查看提交历史
ylbtech-Git-Runoob:Git 查看提交历史 1.返回顶部 1. Git 查看提交历史 在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git ...
- Session对象的生命周期(面试题/笔试题)
创建:第一次执行request.getSession()时创建 销毁: 1)服务器(非正常)关闭时 2)session过期/失效(默认30分钟) 问题:时间的起算点 从何时开始计算30分钟? 从不操作 ...
- Tensorflow 对上一节神经网络模型的优化
本节涉及的知识点: 1.在程序中查看变量的取值 2.张量 3.用张量重新组织输入数据 4.简化的神经网络模型 5.标量.多维数组 6.在TensorFlow中查看和设定张量的形态 7.用softmax ...
- LeetCode.989-数组形式的整数做加法(Add to Array-Form of Integer)
这是悦乐书的第371次更新,第399篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第233题(顺位题号是989).对于非负整数X,X的数组形式是从左到右顺序的数字数组.例 ...
- Scratch少儿编程系列:(十一)Scratch编程之简单见解
一.Scratch官网的说明 With Scratch, you can program your own interactive stories, games, and animations ...
- Alias sample(别名采样)
应用场景:加权采样,即按照随机事件出现的概率抽样 具体算法: 举例如上,随机事件出现的概率依次是1/2,1/3,1/12,1/12;记随机事件的个数为N,则所有事件概率乘以N后概率为2,4/3,1/3 ...
- mysql中基本的语句
操作字段: 添加字段 ALTER TABLE 表名 ADD 字段 varchar(20) COMMENT '别名'; 修改表字段的属性等(除了修改表名称) ALTER TABLE 表名 MODIFY ...
- Spring源码阅读环境搭建
目录 安装gradle 导入Spring源码 创建测试模块my-test 其他问题 spring-aspects模块构建时报错 本文思维导图 本文将粗略的搭建一个Spring源码的阅读环境,为后面的源 ...
- 【VS开发】【智能语音处理】语音信号处理之(四)梅尔频率倒谱系数(MFCC)
语音信号处理之(四)梅尔频率倒谱系数(MFCC) zouxy09@qq.com http://blog.csdn.net/zouxy09 这学期有<语音信号处理>这门课,快考试了,所以也要 ...