zoukankan      html  css  js  c++  java
  • http学习笔记2(URL)

    http学习笔记(二)—— 嘿!伙计,你在哪?(URL)

     我们之所以希望浏览网页,其中一个重要的原因就是庞大的web世界中有很丰富的资源,他就像哆啦a梦的口袋,随时都能拿出我们想要的宝贝。这些资源通过http被传送到我们的浏览器,并展示到我们的屏幕上。而我们之所以可以准确地找到这些资源,是URLUniformResourceLocator,统一资源定位符)帮我们确定了它们(资源)的位置。

     

      

     

      在没有 url 之前,我们想获取资源,必须要先想办法,连接到一个服务器上去,这个过程中可能还需要登陆,然后在服务器上找到目录,然后切换成二进制模式,这样才可以获得自己的资源。这个过程很繁琐,而且,用户也不一定会使用。直到互联网之父蒂姆·伯纳斯·李(就是在伦敦奥运会开幕式上打出this is for everyone的大师)发明了URL

     

     

     

    URL初窥

     

    比如这是一个完整的地址:

     

      http://www.abc.com/index.html

     

    URL将这个整个地址分成了三个部分:

     

      ①方案  ②主机名 ③资源路径

     

    其中 :

     

      http:// 是方案,它规定了我们使用哪种方式访问目标地址。

     

      www.abc.com 是目标主机名  实际上它会被DNS服务器解析为一个IP地址。

     

      最后index.html 是资源的路径。

     

    现在来详细地看看这些东西。

     

    URL语法

     

    几乎所有的URL都遵循规定的URL语法:

     

      <scheme>://<user>:<password>@<host>:<port >/<path>;<params>?<query>#<frag>

     

    接下来我们详细地看看每个部分:

     

    <scheme>(方案):

     

      在巨大的网络世界里有很多服务器(比如sambaftpmail等等),每种服务器都有一些特定的服务方式访问它们。比如我们在访问ftp服务器时可能会输入: 

     

      ftp://www.abc.com

     

      ftp:// 在这里就是我们使用的传输协议,这也是url告诉服务器要采用什么方案来传输资源一种方式。这就好像我们放假约哥们儿出去喝酒,你打电话给他,他总不能拿邮箱接电话吧。

     

    <user>:<password>

     

    至于账号和密码,这个很好理解,假如我们在学校或者公司有ftp服务器,它有时会要求用户输入一个登录名和一个密码来登陆到ftp。通过url访问这个服务器时候,用户名和密码就会被加在这个地方。

     

     

     

    <host>:<port >

     

      主机就是客户端要访问的目标服务器。

     

      端口就是目标服务器上为客户端提供的服务使用的监听端口,最典型的就是web服务器的80端口。服务器通过端口准确地确定客户端需要的资源从哪个服务获取。

     

     

     

    <path>

     

    路径说明了这个资源在这个服务使用的目录下的位置

     

     

     

    <params>

     

      参数,有些方案不仅仅满足于账户和密码提供的信息,他们需要更多的参数来确定传输的方式。这些参数用   ;     号和URL其他部分分开

     

      比如:   ftp:/www.abc.com;type=d 

     

      这个例子中  type是参数名   d是这个参数的名字。服务器端的服务程序接收到这个url 请求后,知道用type 采用d模式 

     

     

     

    <query>

     

      相信学习web的童鞋一定都用过问号传值, 我们常常通过这个查询组件,确定数据库查询的范围,并确定客户端希望获得的资源。并且和参数一样,查询不局限于一个单一的参数。他们可以通过&连接符传递多个查询。

     

      比如: http://www.abc.com/xxx.html?type1=value1&type2=value2&type3=value3

     

     

     

    <frag>

     

      最后这个片段,相信大家也一定不会陌生,它就像我们在看电子书时用的书签。在这个页面中的某一个部分,开发者给他定义一个名字,当用户打开这个页面想访问这个部分的时候,通过这个片段组件找到这个片段。就好像喊一下这个片段的名字,它就立马就跑到我们前面来了。

     

      这个组件还是很有用的。有时候用户需要访问一个篇幅很长的页面,而他们并不想阅览所有的内容,用户只是想看到他们需要的部分,如果使用滚动条的方式阅读找到这些内容会很吃力。但是网站的设计者在页面中为某一部分设定了名字,那用户很快就可以找到这些内容了。

     

     

     

    以上就是url的一些解释了。

     

    相对路径

     

    之前所了解的都是绝对路径。现在来看看相对路径。

     

    假如在开发一个页面时,我们写访问路径,每次都要写下一个完整的URL,那简直是太残暴了。

     

     

     

    况且我们开发时很少知道这个开发的页面,未来会用什么域名,这个站点的所有文件未来会被摆放到什么位置。相对路径解决了这个问题。假设我们访问这个路径:

     

    www.abc.com/index.html   

     

    而这个页面中有一个连接指向 www.abc.com/page1.html

     

    index.html中的连接就可以这么写 <a href=”./page1.html”></html>

     

     

     

    浏览器会自动补齐页面的路径,下面是一个例子:

     

    这个是一个简单的页面中的一个图片链接

     

     

     

    经过浏览器整理之后它就变成了

     

     

     

    这个相对路径后面也可以进行参数、片段、查询字符串的使用。

     

    当然浏览器不可能凭空补全这个路径:找到它基础URL这两种方式:

     

    1、在html文档中显示地使用一个<base>标签标记。所有相对URL通过这个<base>中定义的路径来补齐绝对路径

     

    2、如果没有这个<base >标签,那么浏览器就会把当前页面的URL作为基础。

     

     

     

    通过URL,我们很方便地就找到了自己想要的资源,甚至大多数用户都不用知道他们需要使用什么协议和方法,就可以很轻松地对资源说:嘿!伙计,我找到你了!

     
     
  • 相关阅读:
    ClientDataSet 心得
    TClientDataSet中关于TField、TFieldDef动态创立字段的应用
    Delphi CxGrid 汇总(4)
    Delphi CxGrid 汇总(3)
    Delphi CxGrid 汇总(2)
    Delphi cxGrid使用汇总(一)
    修改后的SQL分页存储过程,利用2分法,支持排序
    字符串操作之格式化
    关于 cxGrid 的过滤问题
    cxGrid实现取消过滤和排序后定位到首行(单选和多选)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3157698.html
Copyright © 2011-2022 走看看