访问ashx一般应用程序

浏览器中的地址栏键入要访问页面的地址:回车(是和服务器软件打交道)----向服务器发送请求(以http协议为基础,服务器按照此协议解释理解接收到的数据),服务器接收到发送的请求,根据请求信息知道当前所要访问的页面地址,然后服务器软件IIS通过地址在整个网站的程序集中找到被请求页面的页面类整个网站被编译成一个程序集,程序集中包括所有页面的页面类)----------另一种简化,不注重细节说法----【找到服务器中被访问的网站页面所在的文件夹,通过反射的方式创建所访问页面类的对象】------为了统一调用处理方法,将页面类对象转化为接口--IHttpHandle接口,然后通过调用接口的ProcessRequest方法(被访问时被调用的处理方法,相当于winform中的load()方法)为入口方法,来实现处理所有代码------产生字符串输出到浏览器,浏览器接收到服务器返回的数据,并按照语法解释执行,以界面的方式展示给用户看到。

浏览器和服务器到底是什么东东?

如果我们自己来编写一个浏览器和服务器程序,该怎么做?

就好像打电话一般:

  • 咱们用中文还是用英文?(约定通信的语法)
  • 准备好要说的话 (按照语法准备要传输给对方的数据)
  • 拨通电话(建立连接)
  • 通过电话机/电话线说话(通过互联网传输数据)
  • 注意:两个人都得拿对话筒(通信双方关注接收对方的数据)

总结:

  • 浏览器:一个可以通过HTTP协议向服务器发送各种请求,并对从服务器发来的超文本信息和各种多媒体数据格式进行解释、显示和播放 。
  • 服务器:一个管理资源并为用户提供服务的计算机软件。
  • 交互时使用HTTP协议。

HTTP请求详解图

浏览器和服务器本质上就是两个使用Socket进行基于HTTP协议的通信的两个应用程序(我们使用WinForm)。

咱自己做个服务器程序要解决的问题:

  • -1.怎么接收浏览器的请求?接收以后怎么理解?
  • 0.怎么向浏览器发送响应?发送后浏览器怎么理解?
  • 1.如何对静态页面(html/css/javascript)的请求做出响应?
  • 2.如何对动态页面(ashx/aspx)的请求作出响应?动态文件可是有很多的,使用什么方式来调用呢?
  • 3.如何对图片文件(jpg/gif)的请求作出响应?
  • 4.如何保存状态? 

解决思路:

  • 1.使用套接字进行数据交换。
  • 2.使用HTTP协议(到底什么是HTTP协议?)的数据,双方按照此协议解释理解接收到的数据。
  • 3.直接读取静态文件的数据并通过套接字发送。
  • 4.对于动态文件的请求,可以通过分析请求页面,并反射所对应的类,并通过接口调用类的方法。 
原文地址:https://www.cnblogs.com/skyl/p/3799201.html