独上高楼-HTTP协议(2):URI

如我所见的,一模一样的我

我感到的我是那个真我吗?

在web世界,URI用于指示资源。

为了简单,URI被设计为上下文无关,不关心资源是否存在也不关心如何获取资源。所以web世界的资源总是无序的,你无法确切的知道整个互联网有多少资源,也不知道这些资源应该如何被正确的管理。

介绍

URI(Uniform Resource Identifier)是web世界的基础,他定义了网页世界和主机世界的映射关系,让资源有迹可循。

RFC3986中详细介绍了URI的作用是用于提供一种简单和可扩展的方式来描述资源,简单的说来:

Uniform: 提供统一的格式来识别资源

resource:可被标识的任何东西

Identifier:表示可标识的东西

可以将Identifier理解为名词,Uniform表示语法规则,resource代表物理实体。

深入

URI的格式

URI格式
  • 如果在英语世界,这样的设计没多大问题。在非英语世界,如果URI中混入了非ASCII字符是没法处理的,标准的处理方法是Percent-Encoding,将非ASCII字符用ASCII字符来替代,对于白左而言,这种处理方式体现了白人至上的感觉。

    有一个叫做IRI的东西,引入unicode字符来解决兼容问题。

  • 在大家对URI理解不深的时候,URI跟文件实际路径一一对应,比如说:

    http://server.com/../../var/log/test.log

    这样会导致一些安全性问题。

  • URI指定了查询字符串,web的很多问题就出现在这里,你可以用的方法来访问资源所有者并不想你访问的资源。也就是注入

  • 登录信息直接写在访问资源中(授权不应该是资源自身的属性)。

……

URI的设计理念

  • 转录特性

    URI需要经过翻译才能够获取该资源,这个过程称为转录过程。

  • 与交互分离

    对URI来讲,他不关心如何去获取资源,他总是用于指示某个资源,而不关心如何获取资源或者资源是否存在。

  • 分层标识

    资源的组织是按照树形结构进行组织。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。