• 网站应用程序



    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)方法来获取请求的结果

    Hold on, everything is possible.
  • 相关阅读:
    bug-- java.lang.RuntimeException: Type “Klass*"
    ThreadPoolExecutor源码分析二
    ThreadPoolExecutor源码分析一
    java动态代理框架
    liunx 中一个命令可以检测 ps -C java --no-heading| wc -l 一般用于shell脚步编写用
    log4j.properties 使用说明
    图文详解MyEclipse中新建Maven webapp项目的步骤(很详细)
    MySQL高可用性之Keepalived+Mysql(双主热备)
    使用cglib动态创建类,添加方法
    2017年5月5日 星红桉liunx动手实践mysql 主主双机热备
  • 原文地址:https://www.cnblogs.com/student-note/p/6134433.html
Copyright © 2020-2023  润新知