学习笔记04IIS
IIS机制:
1.能监听端口,获取socket的客户端对象
2.获取请求报文,将请求报文变成对象。
3.处理请求报文,通过HttpApplication.ProcessRequest方法来处理HttpContext对象。
4.生成响应报文类HttpRespone
5.生成响应报文,使用socket发送回客户端
IIS响应客户端过程:
1.socket监听到客户端
2.接收到客户端的请求,并转化为HttpContext对象,主要是转化为HttpRequest,HttpRespone对象。
3.根据请求的url通过反射,创建HttpApplication对象,调用ProcessRequest方法处理HttpContext,并设置HttpContext.HttpRespone对象,使得HttpRespone对象产生Http响应头,响应体等。
*在webfrom中使用HttpRespne.wrtie时,并不代表就马上写,对他操作时,还在拼http报文。
4.Socket发送由HttpContext.HttpRespone生成的响应报文,可能是html,图片,mp3之类的。
5.关闭socket
*在浏览器发送一个URL的时候,会首先获得服务器返回的html,然后一行行解析。
*如果解析到需要js文件,css文件,再向服务器发送请求,要求接受此文件,如果解析到<img>,就会根据img的src,请求服务器要图片。
*IIS生成动态网页的过程:
1.IIS接受到URL中,含有aspx,ashx后缀时,判断是生成动态网页,或处理程序,由于动态网页或处理程序是一个类,实现了IHttpHandler,并在实现的方法中,动态生成HTML作为相应体。
2.通过反射,根据请求的文件名,生成一个页面对象,用IHttpHandler.ProcessHandler方法处理请求。
3.返回。
IIS本质是服务器程序,程序员就是编写类库,让IIS来以反射的方式调用。
IIS能设置网站的首页。
学习笔记04IIS的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- JAVA TCP/IP网络通讯编程(一)
一个实例通过client端和server端通讯 客户端发送:“我是客户端,请多关照” 服务端回复:“收到来自于"+s.getInetAddress().getHostName()+" ...
- Java基础学习笔记(三) - 抽象类和接口
一.抽象类 没有方法主体的方法称为抽象方法,包含抽象方法的类就是抽象类. Java中使用 abstract 关键字修饰方法和类,抽象方法只有一个方法名,没有方法体. public abstract c ...
- python Django中的cookie和session
目录 Cookie 1.1获取Cookie 1.2设置Cookie Session 1.数据库Session 2.缓存Session 3.文件Session 4.缓存+数据库Session Cooki ...
- Java 学习笔记之 线程Priority
线程Priority: 线程可以划分优先级,优先级较高的线程得到的CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务. 设置线程优先级有助于帮助“线程规划器”确定在下一次选择哪个线程来优 ...
- MongoDB 学习笔记之 $or与索引关系
$or与索引关系: 对leftT集合的timestamp创建索引 执行$or语句:db.leftT.find({$or: [{ "timestamp" : 5},{"ag ...
- MongoDB 学习笔记之 基本CRUD
Mongo 命令: show databases/dbs; use test; show tables/collections; db.help() db.createCollection('user ...
- Sublime Text 3 配置 Phpcs
Phpcs 插件介绍 可以为 Sublime Text 编辑器提供代码格式检测的功能,使用以下工具(全部可选): PHP_CodeSniffer (phpcs) Linter (php -l) PHP ...
- STM32进阶之串口环形缓冲区实现
队列的概念 在此之前,我们来回顾一下队列的基本概念: 队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO)的线性表,只允许在一端插入(入队),在另一端进行删除 ...
- python编程基础之二
交互式: 此处以windows为例:开始->运行->cmd,输入python 交互式界面 优点:即时,所见即所得 缺点:代码不可复用,根本无法进行维护 退出:exit() 代码是顺序执行: ...
- LeetCode_155-Min Stack
栈的实现,多加了一个最小值的获取 class MinStack { public: struct Node { int nNum; int nMinNum; Node* pNext; Node() { ...