第一章 网站应用程序

System.URI
  常用属性:
    Scheme 协议名称
    Host 主机
    Port 端口
    AbsoultePath 绝对路径
    Query URI地址中的参数部分
  URI(通用资源标识符)
  URL(统一资源定位符)
  为IP取一个有意义的名字就是域名,通过DNS(域名服务器)来关联IP和域名
程序与程序的通信层次
  1.物理层
  2.数据链路层
  3.网络层
  4.传输层
  5.会话层
  6.表示层
  7.应用层
应用层协议的内容需要通过传输层在浏览器和服务器之间进行传送
  TCP/IP中
    TCP负责可靠通信的传输层协议
    IP负责网络层的协议
  HTTP协议就是TCP/IP协议中专门用于浏览器与web服务器之间通信的应用层协议
    在同一个网络地址上,为了区分使用相同的协议的不同应用程序,可以为不同的应用程序分配一个数字编号,这个编号称为网络端口(2字节)由IANA(互联网地址分配机构)分配这些网络端口

    1.0-1023 为众所周知的端口
    2.1024-49151 登记端口
    3.49152-65535 私有端口

那怎么来实现一个简单的HTTP服务器?
  1.SOCKET 基于SOCKET 最原始的,那也就是功能最强大的,当然也就最复杂
  2.TCPListener 基于TCP的,因为HTTP就是基于TCP/IP的,对SOCKET的进一步封装
  3.HttpListener 基于TCP/IP,对TCPListener的进一步封装
  常用属性:
    IsSupport 是否支持
    prefixes 前缀
程序集管理的最小逻辑单位为应用程序域(AppDomain)
>应用程序域
>应用程序集

应用程序的四大机制
1.隔离,不同应用程序域之间不能之间访问,跨应用程序域访问的对象必须派生自System.MarshalByRefObject
2.卸载 被加载后必须以应用程序域为单位卸载
3.安全 以应用程序域为边界的安全机制
4.配置 以应用程序域为边界的程序配置
Web 应用程序域
ApplicationHost类的静态方法CreateApplicationHost(Type,virtualDir,physicalDir);

默默无闻的工作者对象:
  在ASP.NET中,准备用于处理的请求,必须封装为HttpWorkerRequest类型对象
  SimpleWorkerRequest可以处理简单的请求,将返回的内容输出到TextWriter流中
Web应用程序的运行时
  >System.Web.HttpRuntime类是整个ASP.NET服务器处理入口
    >HttpResponse
      默认情况下,HttpResponse对输出的页面进行了缓冲
      可以通过BufferOutput属性来获取
重定向(Redirect)原理
  返回状态码:302
  设置回应头["Location"]="地址"
    >HttpRequest
      >Headers
      >Form
      >Cookies
      >Files
辅助的常用工具类HttpServerUtility

一个简单的Asp.net web服务器实现步骤
  1.可以通过SimpleHttpListener来获取一个Http的连接

  2.获取一个连接以后呢,就需要对它的请求进行处理,但是在这里我们进行直接的处理,因为不在同一个应用程序域中,所以我们用委托指向它

  3.创建跨应用程序域的对象,继承至System.MarshalByRefObject,创建一个处理请求的方法

  4.在处理请求的方法中指明asp.net程序的入口,并通过HttpRuntime.ProcessRequest(HttpWorkRequest)方法来获取请求的结果

时间: 2024-10-13 16:00:23

第一章 网站应用程序的相关文章

第一章 Windows程序内部运行机制(4)WinMain函数

WinMain函数相当于main函数,作为Windows程序的入口函数.当WinMain结束或返回时,Windows程序结束. 一个win32应用程序,该程序创建一个窗口并在窗口中响应键盘与鼠标消息,程序的实现步骤为: 1.WinMain函数的定义:2.创建一个窗口:3.进行消息循环:4.编写窗口过程 WinMain函数的定义: int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, in

《算法》第一章部分程序

? 书中第一章部分程序,加上自己补充的代码.包括若干种二分搜索和寻找图上连通分量数的两种算法. ● 代码,二分搜索 1 package package01; 2 3 import java.util.Arrays; 4 import edu.princeton.cs.algs4.StdRandom; 5 6 public class class01 7 { 8 public int binarySearch(int [] a, int target) // 非递归实现 9 { 10 int lp

解决《C++ Primer》第一章书店程序问题

第一章1.6节有一个书店程序问题,按照书上的代码,编译器就会报错,显示 aa.cpp:13:32: error: no match for call to '(std::__cxx11::string {aka std::__cxx11::basic_string<char>}) ()' if(item1.isbn()==item2.isbn()) ^ aa.cpp:13:46: error: no match for call to '(std::__cxx11::string {aka s

第一章 C 程序的框架结构

计算机系统是由硬件系统和软件系统构成,硬件由IBM.HP.DLL.Acer以及联想这样的工厂制造出来,叫裸机.软件由微软.Oracle以及用友等公司的程序员用计算机语言编写出来的,叫程序.程序和编写该程序的文档一起构成了软件系统.裸机安装上了操作系统就构成了第一层虚拟机,计算机软硬件资源由操作系统来管理.在操作系统之上安装应用软件,就构成第二层虚拟机,用户一般与这层计算机打交道的.应用软件提供一个输入数据的界面,用户通过这个界面将要加工的原始数据(文字.数值 .声音.图片.图形.动画.电影等)输

第一章 Windows程序内部运行机制(3)消息与消息队列

在Windows中,用户程序可以调用系统的API函数,系统也会调用用户程序,这个调用时通过消息来进行的. Windows程序设计是一种事件驱动方式的程序设计模式,主要基于消息. [例]当用户在窗口中画图的时候,按下鼠标左键,操作系统就会感知到这一事件,于是将这个事件包装成一个消息,投递到应用程序的消息队列中,然后应用程序从消息队列中取出消息进行响应.在处理过程中,操作系统会给应用程序“发送消息”.“发送消息”实际上是指操作系统调用程序中一个专门负责处理消息的函数,这个函数称为窗口过程. 1.消息

VC++深入详解 孙鑫 第一章 Windows程序内部运行机制

1.API与SDK API (Application Programming Interface) 应用程序接口 SDK(Software Development Kit) 软件开发包,包括API函数,帮助文档,微软提供的一些辅助开发工具. 2.窗口和句柄 窗口是是屏幕上一块矩形区域,是Windows应用程序与用户进行交互的接口: 在Windows应用程序中,窗口是通过窗口句柄(资源标识)来标识的. 3.消息和消息队列 Windows程序设计是一种基于消息的事件驱动方式的程序设计模式. 每当一个

第一章 Windows程序内部运行机制(2)窗口和句柄

窗口是Windows应用程序中非常重要的元素.一个Windows应用程序至少有一个主窗口.窗口是Windows应用程序和用户进行交互的接口. 窗口通常包含标题栏.菜单栏.系统菜单.最小化框.最大化框.可调边框和滚动条. 窗口分为客户区和非客户区.应用程序通常在客户区中显示文字或绘制图形.标题栏.菜单栏.系统菜单.最小最大化框.可调边框统称为非客户区.非客户区主要由Windows系统来管理.应用程序主要管理客户区和外观及操作. 桌面也是一个窗口,称为桌面窗口,由windows系统创建和管理. 窗口

第一章 Windows程序内部运行机制(1)API和SDK

Windows操作系统提供了各种各样的函数,以方便我们开发Windows应用程序.这些函数是Windows操作系统提供给应用程序编程的接口(Application Programming Interface)简称为API函数. MSDN可以说是为微软开发人员提供的一套帮助系统,其中包含大量的开发文档.技术文章和示例代码,学会用MSDN来进行学习,对初学者来说很重要. 什么是SDK? SDK的全称是SoftwareDevelopment Kit,中文译为软件开发包.假如我们要开发呼叫中心,在购买语

第一章 Windows程序内部运行机制(4)WinMain函数(续)

4.显示及更新窗口 要让窗口显示出来,需要调用ShowWindow来显示窗口. BOOL ShowWindow( HWND hWnd, int nCmdShow ); 第一个参数是创建窗口后返回的那个窗口句柄.第二个窗口指定了窗口显示的状态.常见的状态有:SW_HIDE隐藏窗口并激活其他窗口:SW_SHOW在窗口原来的位置以原来的尺寸激活和显示窗口:SW_SHOWMAXIMIZED激活窗口并将其最大化显示:SW_SHOWMINIMIZED激活窗口并将其最小化显示:SW_SHOWNORMAL激活并