zoukankan      html  css  js  c++  java
  • [Asp.net本质论]重新认识url

    引言

    之前大部分时间,一直在学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地址关联起来。

  • 相关阅读:
    SQL-W3School-高级:SQL ALIAS(别名)
    SQL-W3School-高级:SQL BETWEEN 操作符
    SQL-W3School-高级:SQL IN 操作符
    SQL-W3School-高级:SQL 通配符
    C语言实现定积分求解方法
    android使用webview上传文件(支持相册和拍照)
    POJ2349+Prim
    nyist 740 “炫舞家“ST(动态规划)
    paip.php eclipse output echo 乱码
    Deep Learning论文笔记之(八)Deep Learning最新综述
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/3826729.html
Copyright © 2011-2022 走看看