BS程序工作原理

本文详细阐述了B/S程序的工作原理,包括静态网页与服务器技术的区别,客户端和服务器在.NET C/S与.NET B/S中的角色,以及常见的服务端开发技术如ASP和ASP.NET。还介绍了IIS的作用,并探讨了一般处理程序的概念、使用场景及其处理请求的核心方法。最后总结了B/S模式下数据传输的特点和表单提交的GET与POST方法的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BS程序工作原理

B/S程序

浏览器服务应用程序,直接可以解释为网站类应用程序

 

静态网页与服务器技术

静态网页

  1. 以.html或以.htm为后缀的网页文件

  2. 只能单纯的显示文本和图像

  3. 无法和用户进行数据交互,无法根据用户的请求显示不同的网页内容(也就是无法和后台数据库交互)

服务器端开发技术

  1. 不仅可以显示文本和图像

  2. 还可以根据用户的需求,动态的显示不同的网页内容(可以和后台数据库交互)

客户端和服务器

B/S程序中的客户端和服务器的概念和C/S程序有着不同的辨别方式

.NET C/S中

  1. 客户端基本上是由Winform、WPF、控制台等后端语言设计好客户端界面,然后程序通过Socket网络或者服务等技术连接服务器进行工作

  2. 服务器端基本上以SQL数据库为主以及另外的服务端应用程序作为客户端的服务软件,服务器必备一个能够执行计算机语言的环境

.NET B/S中

  1. 客户端软件基本上指的是浏览器软件,而客户端程序指的是HTML页面,可以理解为BS项目其实就是将CS中的客户端通过HTML+CSS的页面替换,最终客户在浏览器中看见的永远都是HTML文件,因为浏览器能够执行的语言HTML+CSS+JS

  2. 服务器端是指远程具有执行服务器语言(C#/Java/PHP/Python...)等一系列计算机语言的环境的计算机,服务器语言能够访问数据库,根据请求将数据获取到之后在进行和客户端网页交互,将数据交给客户端显示

BS和CS

CS的工作原理:服务器计算机语言----数据库进行交互

BS的工作原理:客户端页面----服务器计算机语言----数据库进行交互

ADO.NET指的是通过C#语言访问数据库的这个过程技术

ASP.NET指的是客户端网页通过ADO.NET技术进行页面数据刷新的这个过程技术

服务器:必备的两个条件

  1. 能够支持服务端应用程序开发语言所能够正常运行的环境

  2. 服务器上必须提供一个支持应用程序的数据库(数据库直接放在服务器上也行,或者这个服务器要能够通过自身能够找到目标数据库)

常见的服务端开发技术

ASP、ASP.NET、JSP、PHP...

ASP

(Active Server Page)--动态服务器页面,使用VBScript开发后台程序

ASP.NET

  1. 基于.NET平台,可以使用C#也可以使用VB.NET开发后台程序

  2. ASP.NET主要用来开发Web应用程序

  3. ASP.NET程序主要运行在IIS中

了解IIS

  1. IIS(Internet Information Services)是微软的Internet服务器

  2. IIS是Windows Server操作系统免费捆绑的组件

  3. IIS是Web应用程序运行的服务器

 

表单回顾

<form action="/" method="post">
     <input type="text" name="num1" value="" />+
     <input type="text" name="num2" value="" />=
     <input type="text" name="res" value="" />
     <input type="submit" name="btnRsault" value="计算" />
</form>
  1. 表单的作用:收集用户输入的数据,并提交给后台服务器

  2. 表单的组成:表单域、表单元素、提示信息

  3. 表单的属性:

    1. action:数据提交的目的地(后台数据接收与处理模块:C#文件)

    2. method:数据提交的形式(post:隐式发送;get显示发送)

    3. name:name属性决定哪个表单元素中的value的值能够被提交到后台

静态页面运行

  1. 文件目录作为地址运行:file:///E:/Y11%E7%8F%AD/0416ASP.NET-WebForm/code/ASP.NETWebDemo/ASP.NETWebDemo/01index.html

  2. 以虚拟服务地址运行:https://localhost:44305/01index.html

这两种运行方式完全不一样:打开html根目录运行html文件是不需要网络传输,必须要保证客户端计算机能够访问到目标地址文件。运行原理是:浏览器直接执行这个html文件

而虚拟服务地址运行,相当于将html文件存放在了一个服务器上,访问的时候只要网络能够打通则即可通过网络路径进行访问这个html文件。运行原理:浏览器先从服务器路径上将该html文件下载到本地浏览器内存中,然后执行下载的html文件

报文

当Form表达向服务器发起请求时,会将表单中设置有name属性的表单元素的value值放进报文中通过Internet网络传输,BS的数据传输基本上全部凭借报文进行传输数据,HTTP协议传输协议就是传输报文。报文的格式是世界万维网组织提供的报文格式

1.如果表单提交方式是以get提交:

具有name属性的表单元素的value值会被封装在消息头的请求网址中随着网络进行传输,意味着可以在浏览器的URL框中的网址后面以“name1值=value1值&name2值=value2值...”形式传输

 

 

 

2.如果表单提交方式是以post提交:

具有name属性的表单元素的value值会被封装在报文的参数中随着网络进行传输,意味着在浏览器的URL框中看不到传输的数据格式

 

总结:

  1. 如果表单元素的value值要被传输到服务器,则必须要设置name属性

  2. get提交则提交的数据信息会在URL框中出现,因此传输数据量有限,不安全,但是传输速度快

  3. post提交则提交的数据信息不回出现在URL框中,因此传输数据量没有限制,相对比较安全,但是传输速度相比较较慢

面试题

1、get在浏览器回退时是无害的,而post会再次请求。 2、get产生的URL地址可以被收藏,而post不会。 3、get请求会被浏览器主动缓存,而post不会,除非手动设置。 4、get请求只能进行URL编程,而post支持多种编码方式。 5、get请求参数会被完整保留在浏览器历史里,而post中的参数不会被保留。 6、get请求在URL中传送的参数有长度限制,而post没有。 7、对参数的数据类型,get只接受ascll字符,而post没有限制。 8、get不如post安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。 9、get参数通过URL传递,post放在request body中。

一般处理程序

什么是一般处理程序

一般处理程序是一个后缀为.ashx的代码文件,该文件的类实现了IHttpHandler接口,这个类用于负责处理它所对应的URL的访问请求,并接受客户端发送的请求信息和发送响应内容。

提示:实现IHttpHandler接口的类是作为一个外部请求程序的前提,凡是没有实现该接口的类都不能被浏览器访问。

什么时候用

虽然通过标准的方式可以创建处理程序,但是实现的步骤比较复杂,为了方便网站开发中对处理程序的应用,从Asp.net 2.0开始,asp.net提供了称为一般处理程序的处理程序,允许我们使用比较简单的方式定义扩展名为ashx的专用处理程序。

对于asp.net网站来说,网站最佳的处理结果就是HTML网页,生成网页的工作通常使用扩展名为aspx的Web窗体来完成。对于处理结果不是HTML的请求,都可以通过一般处理程序完成。例如生成RSS Feed、XML、图片等。

一般处理程序是asp.net网站中最为简单、高效的处理程序,在处理返回类型不是HTML的请求中有着重要的作用。

简单理解:一般处理程序就类似于CS程序中的Program文件可以直接运行执行,可以处理一些简单的客户端的需求

  public class Handler1 : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

方法

  1. ProcessRequest方法:处理请求的方法,是一般处理程序的核心方法

    如果某个客户端的请求交给这个一般处理程序去处理请求,那么当请求来临时肯定调用的是这个方法

    HttpContext参数:这个对象中包含有网络传输的所有的内容,例如客户端发起请求的所有的表单数据等,简单理解为请求报文

    HttpContext对象的属性:

  2. Request属性:是一个对象,这个对象包含有报文所有的请求头的数据信息

    1. Response属性:是一个对象,这个对象包含有报文所有的响应头的数据信息

  3. IsReusable方法:只读方法,指示是否记录这次请求的数据对象

结论

这种方法使得后台在绘制HTML页面时非常麻烦,对于复杂页面几乎

B/S总结

当前台客户端浏览器,向远程服务器程序发送一个请求。

这个过程指的就是浏览器中的HTML中的表单,向远程服务器中的后台程序提交一个请求

后台程序指的就是一个C#程序,这个C#程序可以是一般处理程序也可以是其他的C#程序等,对于本次请求处理完成之后将处理的结果数据再次封装好之后响应给客户端浏览器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值