关于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的请求和响应处 理有关,形成一个基础,在开发别的应用项目的时候则可以从 ...
随机推荐
- javascript function对象
<html> <body> <script type="text/javascript"> Function.prototype.get_my_ ...
- makeKeyAndVisible的功能
makeKeyAndVisible的作用 [self.window makeKeyAndVisible] 由于iPhone是单窗口程序,所以也就只有这么一个Window对象,而且是UIWindow,不 ...
- csdn 刷分小工具(刷了1000多被封了,慎用)
先上图,周第一, 月第六代码未整理,比较乱,仅仅供参考(cookie已经废了,号被封了,哈哈) using System; using System.Collections.Generic; usin ...
- iOS开发中使用静态库 .a 文件
iOS开发中,在使用一些第三方库时,可能是一个静态库(比如GPUImage).这种情况下,需要编译出静态库文件(.a) ,然后配合响应的头文件(.h 文件)使用. 编译静态库,直接在Xcode中编 ...
- 关于.net的一些基础知识(一)
一.GC工作原理: GC如其名,就是垃圾收集,当然这里仅就内存而言.Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root为基础,遍历应用程序在Heap上 ...
- PHP基本语法(一)
整形:就是对用整数 正整数与负整数整形的表示:int integer NOTICE:写整形的时候不要在外面再加引号了 浮点:就是小数 3.1415926Float 浮点 布尔值:男和女 真和假 阴和 ...
- iOS 极光推送
1.关于推送的几个证书.http://www.mobile-open.com/2016/931624.html 进入开发者中心:https://developer.apple.com/account/ ...
- DNS 和 IPv6 配置攻略
Windows 2003 DNS配置攻略 http://lgzeng2360.blog.51cto.com/275998/161908/ http://ask.zol.com.cn/q/21861.h ...
- android 换肤模式总结
由于Android的设置中并没有夜间模式的选项,对于喜欢睡前玩手机的用户,只能简单的调节手机屏幕亮度来改善体验.目前越来越多的应用开始把夜间模式加到自家应用中,没准不久google也会把这项功能添加到 ...
- 导出EXCEL数据时防止数值变科学计数的办法
网上有很多说法,最简单直接正确的做法是判断一下是否为数值以及长度,然后给单元格加上以下CSS即可: mso-generic-font-family:auto; mso-font-charset:1 ...