[Asp.net本质论]学习笔记(1)

引言

之前大部分时间,一直在学c#,打算将asp.net本质论好好学习一下,之前虽然已经看了两边了,总感觉看过,没做笔记等于白看了,一点印象也没。打算将书中的代码,自己实现一下,在敲代码时要一直反思,为什么作者那样实现,如果是自己该如何实现?

web应用程序

资源的地址——通用资源标识符(URI)

我们在浏览器地址栏中输入的内容统称为通用资源标识符(Universal Resource Identifier,URI),它有很多种形式,在web中我们通常使用统一资源定位符(Uniform Resource Locator)的形式,格式如下:

协议://主机[.端口号][绝对路径[?参数]]

http://www.microsoft.com/en/us/default.aspx中:

http:表示协议名称;

www.microsoft.com:表示主机的地址;http协议的默认端口号为80.

/en/us/default.aspx:绝对路径。后面没有参数出现,如果加上多个参数则可以如下表示:

/en/us/default.aspx?p=1&n=2

在.net中,不管是URI还是URL都是定义在System命名空间中的URI类来进行处理。

该类定义了5个属性,分别对应5个组成部分。

Scheme属性:协议的名称。

Host:取得URI地址中的主机部分。

Port:取得端口号。

AbsolutePath:绝对路径部分。

Query:URI地址中的参数部分。

简单例子:

1             System.Uri ms = new Uri("http://www.microsoft.com/en/us/default.aspx");
2             Console.WriteLine("协议:"+ms.Scheme);
3             Console.WriteLine("主机:"+ms.Host);
4             Console.WriteLine("端口号:"+ms.Port);
5             Console.WriteLine("绝对路径:"+ms.AbsolutePath);
6             Console.WriteLine("参数:"+ms.Query);
7             Console.Read();

结果:

如何找到主机

互联网上的服务器成千上万,如果找到互联网上的其中一台,该如何找呢?就好比,虽然世界人口多达几十亿,如何找到某个人呢,那你如果知道他的地址,岂不是找起来更方便快捷?同样到了,浏览器要找到服务器,也需要服务器的网络地址。

在当前的TCP/IP协议下,所谓的网络地址,就是一个IP地址,目前我们使用的是IPV4的地址,即IP协议的第四版规定的地址,每个地址由四个字节共32位组成。理论上讲,可以表示4G个网络地址。格式:192.198.0.1,以圆点分割的四个数,最大为255.例如,微软的ip地址:207.46.19.254,直接在地址栏中输入http://207.46.19.254也可以看到网页。

但是,如果单单记忆数字,很让人头疼,如果能通过一个有意义的名字来找到主机,就更容易了。在1983年,保罗.莫卡派乔斯(Paul Mockapetris)发明了域名系统,这样,在互联网上,我们可以为IP起一个有意义的名字以方便寻找主机,这个名字成为域名,比如,微软web服务器的域名为www.microsoft.com,这个名字对应实际IP地址:207.46.19.254

域名和ip如何对应?

这个工作由域名服务器DNS(即Domain Name Server)完成。DNS服务器提供一个类似于分层的通讯录,允许用户通过域名来查找对应的地址,或者通过地址来查找对应的域名。通常情况下,互联网服务商已经帮我们自动设置了DNS服务器,因此可以简单地通过www.microsoft.com域名找到微软的web服务器。

知道服务器之后,需要将请求从我们的客户端传输到服务器,那么,两台计算机是如何通信的呢?他们如何才能理解彼此发送的数据呢?这就需要提到协议了。

总结

URL格式:

协议://主机[.端口号][绝对路径[?参数]]

互联网中通过ip找到主机,通过DNS将域名和ip地址关联起来。

[Asp.net本质论]学习笔记(1)

时间: 2024-11-08 21:51:28

[Asp.net本质论]学习笔记(1)的相关文章

Asp.Net Identity学习笔记+MVC5默认项目解析_授权&Claim

Identity学习笔记 Asp.Net Identity学习笔记+MVC5默认项目解析_基础用法 Asp.Net Identity学习笔记+MVC5默认项目解析_授权&Claim Identity学习笔记授权以角色授权IdentityRoleRoleManager基于声明的(Claims)IPrincipalIIdentityCalimsIdentityClaim用户登入用户授权其他细节Claim Type命名空间 授权 最常用的授权就是给Controller或Action打上[Authori

Asp.Net Identity学习笔记+MVC5默认项目解析_第三方登入&授权总结

Identity学习笔记 Asp.Net Identity学习笔记+MVC5默认项目解析_基础用法 Asp.Net Identity学习笔记+MVC5默认项目解析_授权&Claim Asp.Net Identity学习笔记+MVC5默认项目解析_第三方登入&授权总结 Identity学习笔记第三方登入配置登入案例登入技术总结本地,已登入本地,未登入第三方登入 第三方登入 本文介绍Identity的第三方登入技术.到目前为止只介绍了CookieAuthentication这种授权方式,即浏览

ASP.NET MVC5学习笔记01

由于之前在项目中也使用MVC进行开发,但是具体是那个版本就不是很清楚了,但是我觉得大体的思想是相同的,只是版本高的在版本低的基础上增加了一些更加方便操作的东西.下面是我学习ASP.NET MVC5高级编程(5)的一些知识笔记,有些简单的操作没有进行记录,一些知识点就使用思维导图来写出大体的知识架构. MVC5是完全Bin部署的,也就是说我们最后发布的时候只是将Bin文件下面的应用程序的程序集发布就可以,对于服务器来说只需要有.NET 4.5就可以进行安装了. 一条至理名言"约定优于配置"

C#本质论学习笔记

C#本质论和CLR via C#两本好书,周老师可能是俗务缠身,太忙了吧,翻译得只能让人呵呵了. 你要是忙,别接那么多活好不啦,否则岂不误人子弟? 请您好好学习一下李建忠老师吧,差距啊. 这里,把随手发现的一些问题记录一下,算个笔记.若能对其它同学有所帮助,就更好了. C#本质论第四版 7.3.3 显式接口实现与隐式接口实现的比较 原文: The key difference between implicit and explicit member interface implementatio

Asp.Net Mvc 学习笔记总结(自学第一天)

今天是第一天学习,主要总结了下面两个问题.由于是自学,总结的可能会有纰漏希望大家积极指正(微笑). 1.什么是Mvc?为什么要用Mvc? 2.如何使用Mvc快速实现入门级别的开发? 这里先说一下什么是Mvc:首先Mvc是一种架构模式:第二Mvc不等同于三层:第三Asp.net Mvc是延用了Mvc思想做出来的一款基于三层中的UI层的一款产品:那么Mvc架构模式是什么意思呢?当然这个架构模式20世纪80年代就已经提出来了.当时的提出的时候并没有标准的输入输出设备,只是为了单纯的区分开来输入.输出和

Asp.Net Identity学习笔记+MVC5默认项目解析_基础用法

前言ASP.NET Identity特性Identity包基本IdentityUserUserManager准备工作ApplicationDbContextApplicationUserManager注册案例登入案例用户信息验证用户名密码验证器自定义验证器 前言 本文简单介绍Identity的使用,使用的案例是基于默认的Mvc5项目(只勾选MVC,不勾选WebApi).读者可以拿着项目源码对照地看. ASP.NET Identity特性 One ASP.NET Identity 系统 更容易加入

ASP.NET MVC 学习笔记(1)

从头开始系统地学习ASP.NET MVC

ASP.NET Route学习笔记(1)

注:本文很多部分知识来自于蒋金楠老师的<ASP.NET MVC框架解密>,本人写纯粹是用作个人笔记,假如侵犯了您的权益,请联系我,我立刻删除 在ASP.NET MVC中URL路由通过对请求的URL进行解析,得到以Controller和Action名称为核心的路由数据.但是URL路由系统并不是专属于ASP.NET MVC的,而是直接建立在ASP.NET上,在System.Web.Routing 命名空间下,所以WebForm也可以使用路由对请求地址与物理文件的分离. 好的Url应该满足如下条件:

asp.net基础学习笔记

原文地址:http://blog.csdn.net/oxoxzhu/article/details/8652530 1.概论 浏览器-服务器 B/S 浏览的 浏览器和服务器之间的交互,形成上网B/S模式 对于HTML传到服务器  交给服务器软件(IIS)  服务器软件直接读取静态页面代码,然后返回浏览器 对于ASPX传达服务器  交给服务器软件(IIS)   IIS发现自己处理不了aspx的文件,就去映射表根据后缀名里找到响应的处理程序(isapi,服务器扩展程序) 问题:IIS如何调用可扩展程