对于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的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...
随机推荐
-
零基础如何学习java更有效呢?
零基础学java,不知道该如何入手?也不知道学习的方向,很多人会问零基础怎么样学习,有没有什么入门的书籍推荐:只要方法正确,零基础学好java也是有机会的哦. 一.理解Java思想 Java是一门面向 ...
-
JQ笔记
参数形式$("input:text",document.forms[0])选择form[0]所有input=text$("<p>123</p>&q ...
-
[翻译][MVC 5 + EF 6] 6:创建更复杂的数据模型
原文:Creating a More Complex Data Model for an ASP.NET MVC Application 前面的教程中,我们使用的是由三个实体组成的简单的数据模型.在本 ...
-
Qt入门学习——Qt 5 帮助文档的使用
Qt入门学习——Qt 5 帮助文档的使用 学习图形界面开发,肯定离不开帮助文档的使用,因为它不像 C 语言那样就那么几个函数接口,图形接口的接口可以用海量来形容,常用的我们可能能记住,其它的真的没有必 ...
-
github上传超过100mb文件怎么办
使用Git LFS 上传.Git lFS(Git Large File Storage) 可以上传超过100MB的文件,使用方式为: 下载安装Git LFS 打开git cmd 中间输入 账号和密码 ...
-
Linux学习之日志管理(二十一)
Linux学习之日志管理 目录 日志管理 日志服务 rsyslogd的新特点 启动日志服务 常见日志的作用 日志文件的一般格式 rsyslogd日志服务 /etc/rsyslog.conf配置文件 服 ...
-
JDBC创建表实例
在本教程将演示如何在JDBC应用程序中创建一个数据库表. 在执行以下示例之前,请确保您已经准备好以下操作: 具有数据库管理员权限,以在给定模式中创建数据库表. 要执行以下示例,需要用实际用户名和密码替 ...
-
Windows Phone WebClient的使用
webClient对象可用来下载XML文件,程序集等这些数据,其可以实现按需下载,所以还是有必要了解的.其主要包含几个事件: ...
-
PHPStorm自定义主题配置
1.下载喜欢的主题 官方下载地址:下载 2.将.icls主题文件放到PHPStorm的配置中 windows下主题位置:C:\Users\Administrator\.PhpStorm2017.3\c ...
-
洛谷 P3143 [USACO16OPEN]钻石收藏家Diamond Collector 解题报告
P3143 [USACO16OPEN]钻石收藏家Diamond Collector 题目描述 Bessie the cow, always a fan of shiny objects, has ta ...