Web开发,浏览器通讯原理及流程那点事,你应该听说下
题外话:

最近园子里,关于.net门槛的文章风风火火,不过这类事情每过段时间就会出来一次,所以酱油都懒的打了。
当然个人也是有想法的,特别是这两天碰巧和一个三四年经验的java开发者呆在一起,对方说.net就是拉拉控件时,我还是很严厉的批评了对方,用自己比对方更年长的知识,重新引导对方对.net的看法。
不知道是谁在传播这种.net只是XX论,传播的这个“谁",一定是个新手:所以建议新手,就不要整天跑外面乱吹了,好好学知识去吧。
对于老手,在对新手进行知识传播时,特别是刚教授新学拉控件的时候:一定要讲下.net的精深,告诉他们学的是皮毛,没事不要乱吹自己有多厉害,做人要谦虚。
当下的情况:
现在很多开发的书,它们只讲.net的原理的开发手法,所以很多人只局域在.net的书上讲的开发,一开始经验值会刷的很快,但很快就刷不上去了,更别说达100级转职了。
同样的新手,试问其它语言(java) 和.net有啥不同?
同样是初级,人家比你多懂点form标签属性的method属性有Get、Post等;action的属性可以指定数据传输到哪个页面,而.net的新手从控件入门的不懂。
其实,新手只要顺带多了下解html,简单了解下基础Http协议,基本也和同级java够吹了(最好还是谦虚少吹)。
所以教人控件的导师们,教的时候,除了引导学生对比查看前后生成的html和aspx之外,form属性,和网络通讯基础,也要特别的花精力说一下。

现在回头来看看浏览器通讯那点事:
当你在浏览器输入:http://www.cyqdata.com,之后发生什么事?发生的事有很多,有人说了1小部分,今天我也说一小部分,剩下的YI大部分,有待探索。。。
1:首先浏览器不是吃素的,它给你一条输入框,用于输入网址:
知识点:Winform基础:你也可以弄个TextBox,让用户输入网址。
2:浏览器拿你的输入后:
首先它要看一下是不是网址,如果不是,给你显示你哥的,或导航到自己搜索去。
如果它是域名网址,得把它变成IP,怎么换成IP?
知识点:注册表里,有IE浏览器默认错误请求时的定位地址,自己喜欢可以去改下。
3:域名换IP的内部流程:

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

2:查找系统缓存(如果没有就找Hosts看看有没有)
知识点:操作系统(算了,忽略)
知识点:Hosts的基础操作,涉及IO、系统权限、文件属性等操作。
知识点:本机DNS配置(默认路由器自动分配),网络基本知识(IP、子网掩码、网关、DNS)。

这个http请求数据怎么出去?
首先要开劈端口监听,没端口肯定出不去,到时候还要等待回来的数据也是从这端口进来。
这端口也不会是80,因为80系统自己占了,所以随便来个10000号以上的。
知识点:Socket通讯、TCP协议。
4:有了端口,数据也发了,这数据都怎么流通的?

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

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

知识点:底层驱动开发,这个领域不在行。
知识点:路由器的路由表维护。。。

好,之后浏览器接收回来做了些什么事的小部分故事,有人讲了,就不重复了。
总结:
题内话:

每当我写完一个软件,刚发布的时候,总有一群源码虫跑来要源码,我的原则都是,先分享思想,原理,最后才是源码,学习思想很重要。
没事别看源码,除非你要做的事和源码相关的。
需要开发相关的功能时:不要先看,先F5运行,再局部调试去看码源。
其实你好好看看我的博客,提供的源码不计其数,每一个作品,几乎都会搭配源码,认真学习过的,消费为已用的,估计都月收入过万了!!!
正如我写秋式广告杀手,如果不懂这些原理,不懂的分析在合适的地方的拦截处理,怎么能折腾的出来呢?

Web开发,浏览器通讯原理及流程那点事,你应该听说下的更多相关文章
- Web程序的运行原理及流程(一)
自己做Web程序的开发也有两年多了 从最开始跟风学框架 到第一用上框架的欣喜若狂 我相信每个程序员都是这样过来的 在大学学习一门语言 学会后往往很想做一个实际的项目出来 我当时第一次做WEB项目看 ...
- web端及时通讯原理
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...
- Web程序的运行原理及流程(二)
其实WEB服务器和WEB应用服务器这两个概念特别容易混淆 可以理解为装了不同软件(服务)的两台计算机(服务器)吧 先对两个概念做一个简单介绍 了解了基本的概念 我们再用两个典型的例子做一下比较(建立 ...
- 移动web开发准备知识点
1.1.1 流式布局 其实 流式布局 就是百分比布局,通过盒子的宽度设置成百分比来根据屏幕的宽度来进行伸缩,不受固定像素的限制,内容向两侧填充. 这样的布局方式 就是移动web开发使用的常用布局 ...
- MySQL复制表的方式以及原理和流程
复制表的俩种方式: 第一.只复制表结构到新表 create table 新表 select * from 旧表 where 1=2 或者 create table 新表 like 旧表 第二.复制表结 ...
- 【MEAN Web开发】CentOS 7 安装MongoDB 3.2.3
偶然得了一本书,AmosQ.Haviv 所著 <MEAN Web开发>.起初并不知道这啥东西,看了下目录发现正好有讲MongoDB而已.当时的项目正好需要做MongoDB的内容,之后这书就 ...
- 新手入门:史上最全Web端即时通讯技术原理详解
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...
- Web端即时通讯技术原理详解
前言 有关IM(InstantMessaging)聊天应用(如:微信,QQ).消息推送技术(如:现今移动端APP标配的消息推送模块)等即时通讯应用场景下,大多数都是桌面应用程序或者native应用较为 ...
- SpringMVC内容略多 有用 熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器、过滤器等Web组件以及MVC架构模式进行Java Web项目开发的经验。
熟悉基于JSP和Servlet的Java Web开发,对Servlet和JSP的工作原理和生命周期有深入了解,熟练的使用JSTL和EL编写无脚本动态页面,有使用监听器.过滤器等Web组件以及MVC架构 ...
随机推荐
- 生成1~n的排列
直接递归打印. 代码如下 #include<cstdio> void dfs(int *a,int cur,int n) { if(cur==n) { for(int i=0;i<n ...
- MYSQL,触发器,实现两个表共用ID不重复
前后台没有分开,为了区分前后台用户,所以分表,但是ID不能重复,因为关联了权限表. 这里实现后台用户表使用奇数ID 前台用户表使用偶数ID MYSQL 没有sequence SET @@auto_in ...
- nginx80端口被占用,启动失败。
mac自带的apache占用了80端口,导致nginx服务器不能启动.这个问题是怎么解决的,目前还是不清楚. apache占用端口,使用命令进行关闭: apachectl -k stop,然后重启 ...
- python 下载新的模块
首先, 进入到python的安装目录 在安装目录下有一个Scripts文件夹. 然后里面有一个pip.exe 文件, 这个文件就是执行安装包的. 执行: pip.exe install django ...
- python file文件操作--内置对象open
说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前工作目录)或者一个绝对路径,当传入路径不存在此文件会报错 ...
- bootstrap模态对话框
bootstrap模态对话框 前提是引入bootstrap的css和js的东西 data-backdrop="static"代表的是点击旁边的内容,不进行关闭操作,但是esc的时候 ...
- WIN7 嵌入式系统安装教程 Windows Embedded Standard 2011 安装
轻松构建你的第一个 Windows Embedded Standard 2011 镜像.通过本文你可以快速掌握如何使用Windows Embedded Standard 2011 CTP1 来构建一个 ...
- dojo单柱状图
dojo单柱状图 1.dojo单柱状图源码 column.html: <!DOCTYPE HTML> <html lang="en"> <head&g ...
- JAVA 单步调试快捷键
JAVA 单步调试快捷键以debug方式运行java程序后 (F8)直接执行程序.遇到断点时暂停:(F5)单步执行程序,遇到方法时进入:(F6)单步执行程序,遇到方法时跳过:(F7)单步执行程序,从当 ...
- AM335x(TQ335x)学习笔记——触摸屏驱动编写
前面几篇文章已经通过配置DTS的方式完成了多个驱动的移植,接下来我们解决TQ335x的触摸驱动问题.由于种种原因,TQ335x的触摸屏驱动是以模块方式提供的,且Linux官方内核中也没有带该触摸屏的驱 ...