网站应用程序概要

阐述

网站应用程序工作过程:

  1. 通过浏览器向服务器发送请求(HTTP协议)
  2. 服务器接受浏览器的请求,处理请求回发服务器响应
  3. 浏览器接受响应展示

ASP.Net

Asp.Net 是用于开发网站的,本身并不是一个完整的程序,需要部署到服务器。

  • 服务器(如IIS)用于监听浏览器的请求,服务器可以直接响应静态资源(如.html和.css)
  • 动态资源由Asp.net通过程序动态生成Http响应(如动态生成html页面),再由服务器发回到流程器
    所以Asp.Net 应用程序是用于处理Http 请求的程序,其中WebForm和MVC是在asp.net基础上的两种解决方式

    HTTP服务

    这里简单写个http服务,方便大家理解。浏览器输入http://localhost:8085/回车得到响应

    if (!HttpListener.IsSupported)
            {
                Console.WriteLine("Not Support");
            }
    
            string[] prefixes = new string[] { "http://localhost:8085/" };
    
            HttpListener listener = new HttpListener();
            foreach (string s in prefixes)
            {
                listener.Prefixes.Add(s);
            }
            //开启Http服务监听
            listener.Start();
            Console.WriteLine("Listening...");
            while (true)
            {
                //接受客户端请求数据
                HttpListenerContext context = listener.GetContext();
                // 提取客户端请求对象
                HttpListenerRequest request = context.Request;
    
                // 服务端响应
                HttpListenerResponse response = context.Response;
                string html = @"<!DOCTYPE html>
                            <html>
                            <head>
                                <title>From HttpListener Server</title>
                            </head>
                            <body>
                                <h1>Hello,World.</h1>
                            </body>
                            </html>";
    
                response.ContentLength64 = Encoding.UTF8.GetByteCount(html);
                response.ContentType = "text/html;charset=UTF-8";
                //out stream
                Stream output = response.OutputStream;
                StreamWriter writer = new StreamWriter(output);
                writer.Write(html);
                writer.Close();
                if (Console.KeyAvailable)
                {
                    break;
                }
            }
            listener.Stop();
    程序注意点:
  • 这里直接用的HttpListener类监听的,其之前有两个基础本:第一个版本:通过Socket完成网络通信;第二个版本在第一个基础上,TcpListener对象,通过TCP协议。版本从网络协底层到高层;Socket网络层编程(可以设置TCP协议或UDP协议通信),Http协议是在TCP协议上的应用层协议
  • Stream概念的理解,Stream的概念太抽象。
  1. 用途:从一种硬件向另外硬件传输数据建立的通道。如文件流(主要将硬盘数据读取到内存,或内存数据写入硬盘)
  2. 流:应考虑输入源和输出地。如控制台应用程序 键盘 默认为输入源, 屏幕 为流输出
  3. 流是一种通道概念,可以通过读取流和写入流完成信息交流,Asp.net 通过读取流获取客户端请求,写入流响应请求
  4. StreamWriter 这里用的装饰者模式向流写入数据,在WebForm中通过这种方式生成html标签

猜你喜欢

转载自www.cnblogs.com/LoveTomato/p/9106934.html
今日推荐