1.网站应用程序 - 《APS.NET本质论》

news/2024/5/8 21:41:31/文章来源:https://blog.csdn.net/weixin_30516243/article/details/95078558

1.1.HTTP协议

浏览器与WEB服务器的协议是应用层协议,当前遵循HTTP/1.1,HTTP协议是无状态的协议

   

客户机与服务器通过请求和响应完成一次会话(Session),每次会话中,双方发送的数据称为消息(Message),消息分为两种:

请求消息回应消息

   

客户端请求消息

客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成,下图给出了请求报文的一般格式。

   

   

服务器响应消息

HTTP响应也由四个部分组成,分别是:状态行消息报头空行和响应正文

   

与程序员相关的主要有两个层:传输层应用层

传输层协议负责解决数据的传输问题,传输层依赖更低层的网络层完成实际数据传输,在 TCP/IP 网络协议中,负责可靠通信的传输层协议为 TCP 协议。而网络层一般由网络驱动来实现,普通程序员不涉及;TCP/IP 协议中,网络层的协议为 IP 协议。

   

1.2 最简单的 Web 服务器

1.2.1 网络插座 Socket

使用 Socket 开发程序时,首先考虑使用的网络类型,主要三方面:

  1. Socket 类型,使用网络协议的类别,IPv4 的类型为 PE_INET
  2. 数据通信的类型,常见的数据报(SOCK_DGRAM)、数据流(SOCK_STREAM
  3. 使用的网络协议,比如:TCP协议

   

在一个网络地址上,区分使用协议不同,分配一个数字,称为端口号(port0~65535

  1. 0~1023)称为众所周知的端口,由 IANA(互联网地址分配机构)控制和分配,特定的网络程序使用。例如,TCP协议使用 80 端口完成 HTTP 协议传输。
  2. 1024~49151)称为登记端口,不由 IANA控制,但 IANA 维护一个登记列表。
  3. 49152~65535)称为动态或私有端口,由普通用户使用。

   

.NET中,System.Net 提供网络编程的大多数数据类型以及常用操作

IPAddress 类表示一个 IP 地址

IPEndPoint 类表示一个 IP 地址和一个端口号的组合,称为网络的端点

System.Net.Sockets 命名空间中提供了基于 Socket 编程的数据类型

   

Socket 类封装了 Soket 的操作

常用:

Listen: Socket 置于侦听状态,并设置等待队列的长度。

Accept:为新建连接创建新的 Socket。

Receive: 接收来自绑定的 Socket 的数据。

Send: 将数据发送到连接的 Socket

   

1.2.2 基于 TcpListener Web 服务器

为了简化基于 TCP 协议的监听程序,.NET System.Net.Sockets 命名空间中提供了 TcpListener 类 ,使用它,在构造函数中传递一组网络端点信息就可以准备好监听参数,而不需要设置使用的网络协议细节,调用 Start方法后,监听开始。AcceptTcpClient 方法阻塞进程,直到一个客户端的连接到达经停气,这个方法返回一个代表客户端连接的代理对象,类型为 TcpClient,可以通过它与客户端进行通信。

   

1.2.3 基于 HttpListener Web 服务器

为了进一步简化 HTTP 协议的监听器,System.Net 提供 HttpListener 类。提供一系列相关对象封装 HTTP 的处理工作。这个类使用 Http.sys 系统组件完成工作,所以在 Windows XP SP2 或者 Server 2003 以上操作系统才能使用。(废话了,在用 WIN 2000 的在下佩服)

   

1.3 进入 ASP.NET

.NET中,程序集管理的最小逻辑单位为应用程序域(AppDomain),对.NET程序来说,可以动态加载程序集到应用程序域中。但是,加载之后的程序集不能单独卸载,只能以应用程序域来整体卸载。应用程序域提供四个重要的机制:

  • 隔离
  • 卸载
  • 安全
  • 配置

ASP.NET将网站应用程序寄宿在一个独立的应用程序域中,便于管理。虽然可以通过 System.AppDomain 可以创建自定义的应用程序域,但是,ASP.NET System.Web.Hosting 命名空间中定义更加方便的辅助类,以协助程序员创建寄宿 Web 服务器程序所涉及的应用程序域并设置参数。

由于我们的应用程序将与 Web 应用程序运行在不同的应用程序域中,涉及跨域问题。.NET中跨域访问的类必须继承自 System.MarshalByRefObject,这样我们的管理程序将得到一个远程对象的代理对象,通过这个代理对象来访问 Web 应用程序域中的对象。

   

1.3.1 Web 应用程序域

ApplicationHost 类的静态方法 CreateApplicationHost 可以帮助我们非常简单的创建 Web 应用程序所需要的应用程序域并设置参数。

1.3.2 不使用 GAC bin 加载 Web应用程序域

   

1.3.3 默默无闻的工作者对象 HttpWorkerRequest

准备用于处理的请求,必须封装为 HttpWorkerRequest 类型的对象,这是一个抽象类,定义在 System.Web 命名空间中

   

Public abstract class HttpWorkerRequest

   

通过这个类的实例,必须提供关于处理请求所需要的信息,以便服务器处理请求。

   

   

1.3.4 Web 应用程序的运行时 HttpRuntime

System.Web.HttpRuntime 类是整个 ASP.NET 服务器处理的入口。

   

1.4 对象化的 HTTP

1.4.1 请求参数的对象类型 HttpRequest

对于每一个请求参数,HttpRuntime 创建一个类型为 HttpReqeuest 对象实例,在System.Web 中。

这个类定义大量属性,表示关于 HTTP 请求参数。这些参数来源于 HttporkereRequest

   

1.4.2 处理回应的对象类型 HttpResponse

   

1.4.3 辅助的常用工具类 HttpServerUtility

   

1.4.4 编码与解码

1.HTML

HtmlEncode 编码,HtmlDecode 解码(一般浏览器完成)

   

2.URL

URL 串只应该出现 ASCII 字符。

UrlEncode 方法用来对URL 串进行编码

   

3.URL Path

UrlPathEncode 仅仅编码 URL Path 部分

   

4.UrlToken

UrlTokenEncode 用于在 URL 中以字符串形式传递一个字节数组的时候使用

   

1.4.5 浏览器类型

ASP.NET中,以 HttpBrowserCapabilities 类型对象的形式,通过 HttpRequest 提供给开发人员。

   

Public HttpBrowserCapabilities Browser { get; set; }

转载于:https://www.cnblogs.com/tangge/p/6533449.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_774411.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

30分钟搞定后台登录界面(103个后台PSD源文件、素材网站)

去年八月时要做一个OA系统为了后台界面而烦恼,后来写了一篇博客(《后台管理UI的选择》)介绍了选择过程与常用后台UI,令我想不到的时竟然有许多开发者与我一样都为这个事情而花费不少时间,最后界面效果还是不佳&#xf…

花样繁多的网上手机回收、交易网站背后是怎样一条产业链?

毋庸置疑的是,当下智能手机已经成为大众另一个不可或缺的“肢体”。在智能手机中,有着太多关于大众个人信息、隐私的内容。照片、通讯录、社交应用中的信息、支付宝、手机银行、各种理财应用、健康数据……几乎所有你能想到或想不能到的信息,…

xammp php环境搭,XAMPP配置PHP环境搭建建站集成安装包7.2.4.4官方32位/64位版

XAMPP配置PHP环境搭建建站集成安装包官方最新版下载,XAMPP安装PHP环境搭建是小编为大家带来的一款功能强大的PHP建站集成软件包,Xampps工具能够让用户快速创建php环境,一键之下完成apache,php,mysql,phpmya…

如何防止网站被挂马,生成非法垃圾文件?

客户的网站网址打开出现非法跳转到有其它菠菜网站,同时网站目录被生成了许多的垃圾非常文件。 比如客户输入了他正常的域名,打开访问后非常跳转到如下的网站 庆幸客户自己对网站所有的文件都做了定期的备份,客户为了尽快地解决这个问题&#…

【定制开发】【M4】手把手教你WordPress快速建站,简单炫酷,果断收藏

一、系统要求 要运行WordPress,请确保已经准备好以下5条事项: PHP 7.4或更高版本。下载地址:PHP 8.0MySQL 5.6或更高版本。下载地址:mysql-8.0.26-winx64.zip推荐Apache作为运行WordPress的最可靠和功能最强的服务器。下载地址: Apache 2.…

1 学习数据分析 Pandas,这4个资料网站不能少

目录 Pandas 介绍 Pandas 学习资料 Pandas 官网 Pandas 源代码 Pandas 中文网 Pandas 菜鸟网 Pandas 数据分析 - 学习笔记目录_YYDataV的博客-CSDN博客 Pandas 介绍 Pandas 是 Python 语言的一个扩展程序库,用于数据分析。 Pandas 是一个开放源码、BSD 许…

PC比电脑好玩的秘密是什么?答案就是因为有这些神奇的网站!

五花八门小工具合集http://www.nicetool.net/ 该网站真的很“乱”!因为里面的小功能真的很多!无论是Gif制作、证件照换底色、还是搞笑的王思聪微博生成,它都能让你得心意手! 根据你的星座推荐电影https://magicmoviesorter.com/ 如…

技术文章精美配图模板网站推荐-创客贴

最近上海的风景很好,有清晨的微风、有蓝天白云,小编被大好河山迷住了,只顾着欣赏美景佳人,今天开始上班,把思绪和心情收回来,得花一些时间来写写东西,记录记录生活。 我经常逛知乎,也…

python webbrowser打开网站实现点击_简短的爬虫程序,14行Python代码轻松实现爬取网站视频

前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者: IvanFX 复兴计算机社团PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http://note.youdao.com/notesha…

python网站攻击脚本_python脚本实现网易云刷等级网站签到打卡

本帖最后由 一只大八哥 于 2020-7-11 15:14 编辑 前言 最近用白嫖的虚拟主机搭建了个网易云刷听歌数量的网站,每天大概能刷个300首,但是每次都要登录,我这种懒人可不情愿手动干活。于是写了个python脚本,实现网站自动登录以及签到…

一个完整网站的代码_完整的SEO优化方案包括哪些方面?

SEO包括很多方面。正常的SEO优化一般是对网站进行系统的诊断之后,以一份全面的整体的优化方案,来指导网站的优化。单独针对SEO的一个点进行优化,无法让网站的推广发挥出最好的效果。完整的SEO优化方案包括以下几个方面:网站页面优…

有用的java学习网站

1.在线编译运行Java代码的网站 https://www.compilejava.net/ 2. 综合学习网站: http://www.tutorialspoint.com/,可以在线执行多种编程语言,其中编译执行Java代码的地址是 https://www.tutorialspoint.com/compile_java8_online.php 3.综合学…

web静态网页花店_前端开发:静态网站与动态网站的区别是什么?

很多刚入门的前端开发工程师不是很清楚静态网站与动态网站的区别,下面和千锋广州小编一起来看看吧!静态网站只需要通过浏览器进行解析即可,因此网站建设好后可以离线打开查看,动态网站需要通过一个额外的编译解析过程,…

Linux基础_网站权限规划

Linux系统默认的权限: 对于文件来说, 默认的权限: rw-r--r-- 644 对于目录来说:rwxr-xr-x 755 网站比较安全的权限: 网址程序存放在/app/blog 目录下面. 1.网站都是通过傀儡用户运行起来的 www 2.网站用户上传目录,file 644 dir 755 www www 3.除了上传目录之外的目录 file 64…

大型网站架构演进(3)使用缓存改善网站性能

大型网站架构演进(3)使用缓存改善网站性能 原文:大型网站架构演进(3)使用缓存改善网站性能网站的访问也是遵循二八定律:80%的业务访问集中在20%的数据上,如果我们把这20%的数据做缓存,是不是可以减轻数据库的访问压力呢?在项目开发…

程序退出崩溃_亚马逊中国清仓大促 网站客户端全线崩溃

https://www.3dmgame.com/news/201904/3760853.html一句话评论:文章中网友的微博评论已经可以代表我的想法了原文部分:日前宣布将要退出中国市场的电商亚马逊近日进行了清仓大促,却没成想折扣消息一出,大量用户在短时间内涌进亚马…

普通网站用双路cpu服务器,X79双路CPU服务器主机能干嘛

X79双路CPU服务器主机能干嘛 内容精选换一换一、鲲鹏应用使能套件BoostKit虚拟化整体介绍1)主流虚拟化技术对比了几种主流虚拟化技术架构:ESXi、Xen与KVM,其主要差别在与各组件(CPU、内存、磁盘与网络IO)的虚拟化与调度管理实现组件有所不同。ESXi虚拟化…

pytho怎么只爬去标签中的文字_网站内链结构该怎么进行布局

良好的网站内链结构会让蜘蛛顺着链接,一层层的读取网站的内容。网站结构差的网站,会让蜘蛛感觉走进了迷宫,如果你的网站很庞大,最好是建立清晰的网站导航、全面的网站地图、搭建网站内链等用户体验,这样做能够引导蜘蛛…

PHP网站留言要加验证码,织梦dede给自定义表单的留言板增加验证码的方法?

使用织梦模板建站时,大多数的留言板功能都是通过自定义表单来实现的,虽然织梦也有自带的留言板功能,但是比较复杂,但是如果使用自定义表单来实现留言板的话,默认是没有验证码的,没有验证码的话,…

mySQL报500_详细说明网站出现500错误的解决方案

我们都知道,网站通常有403、502、500等错误信息。以前有过关于如何处理403502错误和其他错误信息的文章。网站上有500个错误呢?一、查看详细信息实际上,500个错误也分为很多情况,我们只知道在哪里可以纠正站点的特定问题。通过以下…