[转帖]Web开发,浏览器通讯原理及流程那点事,你应该听说下_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2875 | 回复: 0   主题: [转帖]Web开发,浏览器通讯原理及流程那点事,你应该听说下        下一篇 
    本主题由 koei 于 2014-5-2 16:22:05 移动
lengyuLee
注册用户
等级:少校
经验:1118
发帖:83
精华:5
注册:2013-3-7
状态:离线
发送短消息息给lengyuLee 加好友    发送短消息息给lengyuLee 发消息
发表于: IP:您无权察看 2013-3-13 12:49:00 | [全部帖] [楼主帖] 楼主

当你在浏览器输入:http://www.landingbj.com/jbbs之后发生什么事?发生的事有很多,有人说了1小部分,今天我也说一小部分,剩下的YI大部分,有待探索。。。

1:首先浏览器不是吃素的,它给你一条输入框,用于输入网址:

剩下的事就给它了,接下来浏览器要干什么,那是它的事,比如它可以不给你处理,还可以给你弹你妹的,不过通常都会走标准化流程,毕竟还是给大伙使用的。

知识点:Winform基础:你也可以弄个TextBox,让用户输入网址。 

2:浏览器拿你的输入后:

首先它要看一下是不是网址,如果不是,给你显示你哥的,或导航到自己搜索去。

如果它是域名网址,得把它变成IP,怎么换成IP?

知识点:注册表里,有IE浏览器默认错误请求时的定位地址,自己喜欢可以去改下。

3:域名换IP的内部流程:


北京联动北方科技有限公司
1:查找浏览器自身的DNS缓存表:(缓存是通用逻辑,有就直接拿出来,没有就找系统要,要回来再缓存)。

知识点:涉及注册表操作(禁用IE浏览器缓存或开启)、其它浏览器的API(下面图为 chrome的dns缓存清除设置)

北京联动北方科技有限公司

2:查找系统缓存(如果没有就找Hosts看看有没有)

知识点:操作系统(算了,忽略) 

3:查找系统Hosts文件(如果没有就问问DNS)

知识点:Hosts的基础操作,涉及IO、系统权限、文件属性等操作。 

4:请求本机DNS指向的服务器要(一般都会有,如果没有,基本这次请求就挂菜了)。

知识点:本机DNS配置(默认路由器自动分配),网络基本知识(IP、子网掩码、网关、DNS)。


北京联动北方科技有限公司


3:拿到IP,要发送http请求了:

这个http请求数据怎么出去?

首先要开劈端口监听,没端口肯定出不去,到时候还要等待回来的数据也是从这端口进来。

这端口也不会是80,因为80系统自己占了,所以随便来个10000号以上的。

知识点:Socket通讯、TCP协议。 

4:有了端口,数据也发了,这数据都怎么流通的?


北京联动北方科技有限公司
1:先查路由表(找到数据要发送到哪个IP,通常是网关192.168.1.1)。

知识点:winapi,路由表操作、路由表执行原理,规则、静态和动静区别。 

北京联动北方科技有限公司

2:再查arp表(因为数据是要走网卡的,要把IP换成MAC地址)。

知识点:winapi,操作arp,如何发送api,让你局域网同事朋友同学断网。 

北京联动北方科技有限公司

3:物理硬件把数据传到网关(这中间就涉及到很多TCP协议和驱动和物理链接之类的知识了)

知识点:底层驱动开发,这个领域不在行。 

4:到了网关。。。再根据路由表,找下一级网关传输数据。

知识点:路由器的路由表维护。。。 

该贴由koei转至本版2014-5-2 16:22:05




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论