----http是无状态的,

每次http请求户不影响,都是独立的;不会记的上次请求;

-------iis原理:输入地址--socket封装请求体报文--发送---iis解析封装响应体---返回;

----httpcontext-两个对象:httprequest(封装http请求)和httpResponse(封装相应响应);

---请求的报文

httprequest解析请求报文,分割请求体的各个部分;

---请求原理总结:

发送一个请求----有httpApplication的processrequest方法 创建一个httpcontext上下文--

并将请求报文信息封装到httpcontext上下文的httprequest中,并创建响应报文httpresponse;

--代码:

//将请求报文封装

1.HttpContext context=new HttpContext("requestr");

//封装响应

2.HttpApplication application=new HttpApplication();

3.application.ProcessRequest(context);

//发送相应报文:(头部和主体)

4.socket.Send(context.Response.GetHeader());

4.socket.Send(context.Response.BodyData());

----HttpApplication.ProcesssRequet的内部实现

public class HttpApplication

{

public void processRequest(hhttpContext context)

{

//处理当前请求,并将相应正文放入response中

//处理静态文件js,css,html,htm

//模拟请求静态页面(根据请求判断css,jpg,js,html等类型)

//获取服务端绝对路径

string currenturl=AppDomain.CurrentDomain,baseDirectory;

//拼接总路径

string fileName=path.combine(currenturl,context.request.requesturl);

context.response.bodydata=file.readallbytes(filename);

}

}

----处理动态页面的实现:

public void ProcessDynamicFile(httpcontext context)

{

//获取请求类文件即类名

string classname=path.getfilenamewithoutextension(context.request.requesturl);

//通过反射获取当前命名空间

string namespace=system.reflection.methodbase.getcurrentMethod   ().DeclaringType.Namespace;

//拼接

string fullname=namespace+"."+className;

//因为每页页面实现Ihttphander(内部封装了ProcessRequest(context)方法;

IhttpHandler obj=(IhttpHandler)System.reflation.Assembly.getexecutingassembly().

createinstance(fullName,true);

obj.processRequest(context);

}

iis处理请求随记回顾的更多相关文章

  1. asp.net请求响应模型原理随记回顾

    asp.net请求响应模型原理随记回顾: 根据一崇敬的讲师总结:(会存在些错误,大家可以做参考) 1.-当在浏览器输入url后,客户端会将请求根据http协议封装成为http请求报文.并通过主sock ...

  2. 用 IIS 实现请求转发

    最近部门要开发一个简单的APP,部分数据是现有项目已经存在的,为了方便维护,希望只提供一个交互的入口,并且协议的规则不变. 基于这个需求,有两套解决方案: 1.用代码将现有的api封装一层,对请求数据 ...

  3. c#多线程随记回顾

    C#多线程随记回顾 1.创建多线程方式知道的有三种: ---手动创建Thread.使用线程池.使用task任务 ---手动创建Thread,分两种带参数和不带参数的帮助委托器 eg:  //帮助器委托 ...

  4. 利用IIS应用请求转发ARR实现IIS和tomcat整合共用80端口

    现在网上流传的实现iis和tomcat共享80端口的方法是基于isapi_redirect插件实现的, 我的实现方法不同, 原理相似,具有更好的优点. 先说下基于isapi_redirect缺点,ja ...

  5. IIS 处理请求 原理

    有时候我们会发现当我们访问一个IIS网站时,使用网址可以正常访问,但是使用IP却不行,这是什么原因呢? 原来IIS可以使用一个IP地址和端口绑定多个网站,这些网站的IP地址与端口都一样,因此在客户端或 ...

  6. iis post 请求.html文件报405

    其实本地文件默认是不允许post请求的,但是需要配置一下,配置如下: 我的iis版本是8.5             当然默认也是不能post请求  *.html或是*.json的的文件的,这个问题困 ...

  7. C# socket通信随记回顾

    ----tcp(传输 控制 协议)是可靠消息:三次握手(发给对方,对方发给自己,证明对方接到消息,在发给对方,说明自己能接到对方消息,这样就都知道了):tcp:每发送一次消息,对方都会回复,证明接受到 ...

  8. DotNetCore部署(IIS)踩坑记

    一.windows系统中Dotnet core runtime 安装后,无法启动次程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll的解决方法 错误现象如图 因为 ...

  9. Windows Server 2008 IIS 并发请求设置

    更新服务器的时候,突然发现部分机器出现了错误,大致描述如下 HTTP Error 503.2 - Service Unavailable 正在超过 serverRuntime@appConcurren ...

随机推荐

  1. ArcGIS 10 破解安装(win7 64位)

    上一周换了个win7 64位系统,昨天依照各种各样破解方法装ArcGIS10装了一天,装上之后ArcMap能用,可是装的AO sdk不能用,在VS2008里一拖就报错,确实把我给气坏了.今天早上上班, ...

  2. Android Push Notifications using Google Cloud Messaging (GCM), PHP and MySQL

    http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php- ...

  3. UVALive 5099 Nubulsa Expo 全球最小割 非网络流量 n^3

    主题链接:点击打开链接 意甲冠军: 给定n个点m条无向边 源点S 以下m行给出无向边以及边的容量. 问: 找一个汇点,使得图的最大流最小. 输出最小的流量. 思路: 最大流=最小割. 所以题意就是找全 ...

  4. HDU 4349 Xiao Ming's Hope

    非常无语的一个题. 反正我后来看题解全然不是一个道上的. 要用什么组合数学的lucas定理. 表示自己就推了前面几个数然后找找规律. C(n, m) 就是 组合n取m: (m!(n-m!)/n!) 假 ...

  5. HTML5游戏开发引擎Pixi.js完全入门手册(一)框架简介及框架结构分析,作者思路剖析

    前言: 最近无聊在淘宝弄了个小店,打算做一个兼职.遇到一个客户,要我帮忙拷贝一个html5游戏.. 我这人有一个习惯,拿到自己没见过的东西.都会去研究一番.去网上查了下发现,资料都是英文版.感觉极度不 ...

  6. [ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布

    [ Talk is Cheap Show me the CODE ] : jQuery Mobile页面布局 当我们专注地研究人类生活的空虚,并考虑荣华富贵空幻无常时,或许我们正在阿谀逢迎自己懒惰的天 ...

  7. DHot.exe 热点新闻

    别人的电脑上的今日插件U菜,打开几个PPT文件,和一个视频文件(默认的音频和视频打开百度),结果突然弹出一个热点广告信息表,形式与风格QQ非常相似,例如下面的附图: 托盘图标: 经过搜索.得到例如以下 ...

  8. 自己定义GSON类型适配器

    Exception in thread "main" java.lang.RuntimeException: No-args constructor for class java. ...

  9. HDU 4932 Miaomiao's Geometry(推理)

    HDU 4932 Miaomiao's Geometry pid=4932" target="_blank" style="">题目链接 题意: ...

  10. Entity Framework加载相关实体——延迟加载Lazy Loading、贪婪加载Eager Loading、显示加载Explicit Loading

    Entity Framework提供了三种加载相关实体的方法:Lazy Loading,Eager Loading和Explicit Loading.首先我们先来看一下MSDN对三种加载实体方法的定义 ...