BS程序工作原理
B/S程序
浏览器服务应用程序,直接可以解释为网站类应用程序
B/S开发原理
BS开发程序员所书写的所有的代码都是给服务器写的,
包含HTML+CSS+JS+C#+SQL Server等。代码写好之后都存放在服务器中,相当于程序员不需要考虑客户端程序,当网站发布在服务器上之后这个站点程序就是网站的服务器应用程序,而应用程序和C/S程序基本上一样
而客户使用使用这个应用程序的时候,在客户端浏览器上输入访问这个应用程序的网址进行使用,所以其实HTML+CSS+JS虽然说是最终运行在客户端浏览器上,但是实质上存储在服务器中,只有客户端浏览器访问这个网址的时候,服务应用程序将处理完之后对应的HTML+CSS+JS等文件发送给客户端浏览器
静态网页与服务器技术
静态网页
- 以.html或以.htm为后缀的网页文件
- 只能单纯的显示文本和图像
- 无法和用户进行数据交互,无法根据用户的请求显示不同的网页内容(也就是无法和后台数据库交互)
服务器端开发技术
- 不仅可以显示文本和图像
- 还可以根据用户的需求,动态的显示不同的网页内容(可以和后台数据库交互)
客户端和服务器
B/S程序中的客户端和服务器的概念和C/S程序有着不同的辨别方式
.NET C/S中
- 客户端基本上是由Winform、WPF、控制台等后端语言设计好客户端界面,然后程序通过Socket网络或者服务等技术连接服务器进行工作
- 服务器端基本上以SQL数据库为主以及另外的服务端应用程序作为客户端的服务软件,服务器必备一个能够执行计算机语言的环境
.NET B/S中
- 客户端软件基本上指的是浏览器软件,而客户端程序指的是HTML页面,可以理解为BS项目其实就是将CS中的客户端通过HTML+CSS的页面替换,最终客户在浏览器中看见的永远都是HTML文件,因为浏览器能够执行的语言HTML+CSS+JS
- 服务器端是指远程具有执行服务器语言(C#/Java/PHP/Python…)等一系列计算机语言的环境的计算机,服务器语言能够访问数据库,根据请求将数据获取到之后在进行和客户端网页交互,将数据交给客户端显示
BS和CS
CS的工作原理:服务器计算机语言----数据库进行交互
BS的工作原理:客户端页面----服务器计算机语言----数据库进行交互
ADO.NET指的是通过C#语言访问数据库的这个过程技术
ASP.NET指的是客户端网页通过ADO.NET技术进行页面数据刷新的这个过程技术
服务器:必备的两个条件
- 能够支持服务端应用程序开发语言所能够正常运行的环境
- 服务器上必须提供一个支持应用程序的数据库(数据库直接放在服务器上也行,或者这个服务器要能够通过自身能够找到目标数据库)
常见的服务端开发技术
ASP、ASP.NET、JSP、PHP…
ASP
(Active Server Page)–动态服务器页面,使用VBScript开发后台程序
ASP.NET
- 基于.NET平台,可以使用C#也可以使用VB.NET开发后台程序
- ASP.NET主要用来开发Web应用程序
- ASP.NET程序主要运行在IIS中
了解IIS
- IIS(Internet Information Services)是微软的Internet服务器
- IIS是Windows Server操作系统免费捆绑的组件
- 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>
- 表单的作用:收集用户输入的数据,并提交给后台服务器
- 表单的组成:表单域、表单元素、提示信息
- 表单的属性:
- action:数据提交的目的地(后台数据接收与处理模块:C#文件)
- method:数据提交的形式(post:隐式发送;get显示发送)
- name:name属性决定哪个表单元素中的value的值能够被提交到后台
静态页面运行
- 文件目录作为地址运行:file:///E:/Y11%E7%8F%AD/0416ASP.NET-WebForm/code/ASP.NETWebDemo/ASP.NETWebDemo/01index.html
- 以虚拟服务地址运行:https://localhost:44305/01index.html
这两种运行方式完全不一样:打开html根目录运行html文件是不需要网络传输,必须要保证客户端计算机能够访问到目标地址文件。运行原理是:浏览器直接执行这个html文件
而虚拟服务地址运行,相当于将html文件存放在了一个服务器上,访问的时候只要网络能够打通则即可通过网络路径进行访问这个html文件。运行原理:浏览器先从服务器路径上将该html文件下载到本地浏览器内存中,然后执行下载的html文件
报文
当Form表达向服务器发起请求时,会将表单中设置有name属性的表单元素的value值放进报文中通过Internet网络传输,BS的数据传输基本上全部凭借报文进行传输数据,HTTP协议传输协议就是传输报文。报文的格式是世界万维网组织提供的报文格式
-
如果表单提交方式是以get提交:
具有name属性的表单元素的value值会被封装在消息头的请求网址中随着网络进行传输,意味着可以在浏览器的URL框中的网址后面以“name1值=value1值&name2值=value2值…”形式传输 -
如果表单提交方式是以post提交:
具有name属性的表单元素的value值会被封装在报文的参数中随着网络进行传输,意味着在浏览器的URL框中看不到传输的数据格式
总结: -
如果表单元素的value值要被传输到服务器,则必须要设置name属性
-
get提交则提交的数据信息会在URL框中出现,因此传输数据量有限,不安全,但是传输速度快
-
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中。