关于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的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...
随机推荐
- glusterfs 术语
Access Control Lists Access Control Lists (ACLs) allows you to assign different permissions for diff ...
- centos svn快速搭建
搭建SVN服务,有效的管理代码,以下三步可以快速搞定. 1.安装 #yum install subversion 判断是否安装成功 [root@]# svnserve --version 有了SVN软 ...
- ServletContext获取项目真实路径
import javax.servlet.ServletContext; import org.springframework.web.context.ServletContextAware; /** ...
- iOS Xcode的快捷键
将一些搜集和经常使用的快捷键记录下来,方便你我. Command +1~ 8: 跳转到导航区的不同位置 Command +0 :显示/隐藏导航区 Command Alt 1~ 6:在不同检测器之间跳转 ...
- Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 此异常的原因是服务器端口被占用 所以解决办法是: 一 ...
- tomcat热部署,更改java类不用重新加载context
修改类后,tomcat热部署会重新加载整个项目的context,影响开发效率.网上查的大多数是将server的modules标签中Auto Reload项改为Disabled,但是没有效果. 使用以下 ...
- C++ Virtual详解
转自:http://www.cnblogs.com/xd502djj/archive/2010/09/22/1832912.html Virtual是C++ OO机制中很重要的一个关键字.只要是学过C ...
- [Android]Fragment源代码分析(二) 状态
我们上一讲,抛出来一个问题,就是当Activity的onCreateView的时候,是怎样构造Fragment中的View參数.要回答这个问题我们先要了解Fragment的状态,这是Fragment管 ...
- js动态删除div元素
在做用户查找时 由于要把查找的结果动态载入和显示,所以,那些html元素要由Ajax动态生成.用户打开查找界面时,有系统推荐的用户,而当用户按条件查找后,查找的结果动态载入和显示.所以考虑到用js来搞 ...
- Ubuntu 12.04 升级到14.04之后,pidgin-sipe 出现的问题: Trouble with the pidgin and self-signed SSL certificate
Once again, I run into trouble when upgrading my LinuxMint. In last few days, my Linux mint notifies ...