关于web开发的一点理解
对于web开发上的一点理解
1 宏观上的一点理解
网页从请求第地址 到获得页面的过程:从客户端(浏览器)通过地址 从soket把请求报文封装发往服务端 服务端通过解析报文并处理报文最后把处理的结果
封装成响应报文 发送给客户端(浏览器) ,客户端解析响应报文 把正文(html css javascript)渲染成我们见到的页面。
这就是我们如何看到页面的过程
图解

2对于网页的开发的框架的一点理解
上面提到了网页处理的过程 中 服务端解析请求报文 处理请求报文的过程 就是网站开发的框架 (虽然说起来好像很简单 ,其实一个框架的逻辑非常复杂)
现在我来讲下我较为了解的一个框架 asp.net的框架的处理过程
iis的处理过程(跟框架无关) 1服务器端Http.sys接收到连接请求 把请求放在队列中 2 sys通知w3svc服务 ,w3svc服务通知应用程序池去在队列中取请求 3 应用程序池去取到请求 4判断请求中的url 是否是html文件(也就是说静态文件) 如果是静态直接返回响应报文 如果不是则通过aspnet_isapi.dll 启动托管坏境这就开始属于asp.net框架了
框架的过程 1通过ISAPIRuntime.PR(ecp) 和 HttpRuntime.PR(wr) 将请求报文2次进行封装 最终封装成HttpContext
2同过一个HttpAppLicationFactory(对象池) 创建出HttpAppLication对象 (内部实现 1。如果是第一次请求则把gloable文件编译成一个类型 2.调用application_start()方法 3从对象池中取出HttpApplication 如果对象池为空则通过反射用gloable编译成的类型创建出实例)
3.管线开始运作(由HttpApplication 操作) 管线里一共有19个事件20多个步骤 这么多事件和步骤我就不一一讲了有兴趣可以自己去查下资料,我只讲讲几个关键的步骤和事件 7事件到8事件执行之间会创建页面对象或者一般处理程序 9事件到10事件之间会根据cookies中的sessionid 初始化session状态
11事件到12事件之间会执行一般处理或者页面对象 如果是一般处理程序则直接执行就行了 如果是页面对象则开始生命周期(另外在别的文章里详谈)
4最后把得到响应报文通过sys发回客户端 由客户端渲染
图解

关于web开发的一点理解的更多相关文章
- 1.1对java web开发的一点理解
前言 Q:通常行内人士见面会问你,你做哪方面开发的? A:java web开发的 那么,什么是java web开发? java web开发通常是指java web应用程序的开发.一个B/S架构的 we ...
- python Web开发你要理解的WSGI & uwsgi详解
原文:https://www.jb51.net/article/144852.htm WSGI协议 首先弄清下面几个概念: WSGI:全称是Web Server Gateway Interface,W ...
- 高性能WEB开发:深入理解页面呈现、重绘、回流
在讨论页面重绘.回流之前.需要对页面的呈现流程有些了解,页面是怎么把html结合css等显示到浏览器上的,下面的流程图显示了浏览器对页面的呈现的处理流程.可能不同的浏览器略微会有些不同.但基本上都是类 ...
- 高性能WEB开发:重排与重绘
DOM编程可能最耗时的地方,重排和重绘. 1.什么是重排和重绘 浏览器下载完页面中的所有组件——HTML标记.JavaScript.CSS.图片之后会解析生成两个内部数据结构——DOM树和渲染树. D ...
- 彻底理解和解决移动WEB开发中CLICK点透问题
在移动WEB开发中,有时候可能会出现点透问题,本文将围绕这个TAP点透问题,详细的讲述到底什么是点透,为什么会出现点透,如何避免出现点透,如果不可避免的出现了,如何解决解决移动WEB开发中CLICK点 ...
- Web开发初探(系统理解Web知识点)
一.Web开发介绍 我们看到的网页通过代码来实现的 ,这些代码由浏览器解释并渲染成你看到的丰富多彩的页面效果. 这个浏览器就相当于Python的解释器,专门负责解释和执行(渲染)网页代码. 写网页的代 ...
- 【初码干货】使用阿里云对Web开发中的资源文件进行CDN加速的深入研究和实践
提示:阅读本文需提前了解的相关知识 1.阿里云(https://www.aliyun.com) 2.阿里云CDN(https://www.aliyun.com/product/cdn) 3.阿里云OS ...
- Web开发技术发展历史
Web开发技术发展历史 来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...
- 初学 Java Web 开发,请远离各种框架,从 Servlet 开发
Web框架是开发者在使用某种语言编写Web应用服务端时关于架构的最佳实践.很多Web框架是从实际的Web项目抽取出来的,仅和Web的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...
随机推荐
- -bash: ls: command not found
在iMac下ls既然command not found,查找了下 原因:在设置环境变量时,编辑profile文件没有写正确,导致在命令行下 ls等命令不能够识别.解决方案: 直接在控制台下 expo ...
- FireMonkey 使用Webbrowser
DELPHI XE5 源码PASCAL:http://files.cnblogs.com/xe2011/FireMonkey_Webbrowser.rar 为了这个用上webbrowser真是费太大劲 ...
- Android软键盘调用及隐藏,以及获得点击软键盘输入的字母信息
在Android提供的EditText中单击的时候,会自动的弹出软键盘,其实对于软键盘的控制我们可以通过InputMethodManager这个类来实现.我们需要控制软键盘的方式就是两种一个是像Edi ...
- mysql init_connect 参数的其他用处
http://blog.itpub.net/133735/viewspace-691196/ init_connect 是可以动态在线调整的,这样就有了一些其他的用处 经过测试init_conne ...
- 释放Linux磁盘空间的一种方法
1.用df 检查发现/根目录可用空间为0 [root@/]#df -h 2.用du检查发现 各目录占用的空间都很少,有约3G的空间莫名其妙地丢了. [root@/]# du -m ...
- 关于android应用--内存的优化
以下内容为转载自网上,然后自己加工贴合到一块的: 原文地址:http://www.cnblogs.com/frydsh/archive/2012/12/09/2810601.html http://w ...
- 从 setNeedsLayout 说起
本文从 setNeedsLayout 这个方法说起,分享与其相关的 UIKit 视图交互.使用场景等内容. UIKit 为 UIView 提供了这些方法来进行视图的更新与重绘: public func ...
- Java实现折半(二分)插入排序
/*折半插入查找思想:每趟将一个带排序的元素作为关键字插入到已经排好的部分序列的适当位置上,查找适当位置的方法用折半查找法 * 适合记录数较多的场景 * 在查找插入位置时节省了时间 * 在记录移动次数 ...
- 自定义标签 tld
初学者可能在不借助IDE工具的情况下 编写自定义标签库 tld 程序可能遇到找不到class 的错误,下面讲解一下如何解决该问题 步骤一:新建一个自定义标签类 HelloWorldTag,该类放到s ...
- hazelcast的坑爹事
转载自 http://blog.csdn.net/hengyunabc/article/details/18514563 简介 开源中国的简介: Hazelcast是一个高度可扩展的数据分发和集群平台 ...