什么是HTTP,URI,URL,URN又是什么?

0
许久没有写博客,说是懒也好,说是沉淀自己也好,这段时间要给自己开一个新坑(尽管自己还有坑没填完)。之前一直想找点东西写一下,但是像是JavaScript,还有CSS这些知识,网上都已经讲烂了,以至于我无论是逛知乎,还是掘金segmentfault,上面都有大量相关的文章,以及新手提的各种花式问题。。。
于是只好来“开垦”一下这类貌似很少人讲到东西(至少我看到是这样)。虽然说书上已经讲得很详细了,但是很多人跟我一样,资质比较平庸。这里就当做笔记,给想了解、认识HTTP但是看书又看不下去的那些同学一些我个人的心得体会吧。

HTTP和Web资源

好了,废话讲了那么多,到底什么是HTTP呢?通俗点来说,HTTP是一种可靠的数据传输协议,它可以保证数据在传输的过程中不会被损坏或产生混乱。通常我们在上网的过程当中,每一次对页面的访问都会产生数据的传输,比如说图片、视频、文字等等。对应过来就是.jpg.avi.txt等等格式的文件,我们把这些可以提供Web内容的文件都统称为Web资源HTTP就在这些Web资源传输过程当中担任着保镖的角色————保证数据的正确性

那么在传输过程中,HTTP是如何区分这些不同类型的资源呢?答案是给每个要传输的对象打上名为MIME类型的数据格式标签(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)咋一看我是震惊的,这不是管邮件的吗?怎么变成了HTTP区分不同类型资源的关键了呢?原来当初设计MIME是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。因为MIME在电子邮件系统中工作的非常好,所以后来HTTP采纳它来描述并且标记Web资源

下面是常见的MIME类型

  • text/html (标记HTML格式的文本文档
  • text/plain (标记普通的ASCII文本文档
  • image/jpeg (标记JPEG版本的图片
  • image/gif (GIF格式的图片
  • video/quicktime (Apple的QuickTime电影类型
  • application/vnd.ms-powerpoint (标记PPT文件的格式

通常在HTTP通信的过程当中,Web资源的MIME类型是存在HTTP报文的首部,这个会在下一篇博客里面提到,想要了解更多可以在《http权威指南》里面找到相关的资料

URI

URI,全称就是 Uniform Resource Identifier,意思就是“统一资源标识符”。在互联网上就是通过URI来访问互联网上的资源的。URI是怎么样表示的呢?其实URI还分出来了两个子类型,一个是我们常听到的URL,另一个就是URN。

URL

URL,跟URI的名字有点接近,全称是Unform Resource Location,意思为“统一资源定位符”。人如其名,通过URL我们可以准确的定位一个资源的位置。为什么呢?因为URL通常的格式为: http://www.baidu.com/sb.jpg
其中前面一部分是协议名称,一般为http。中间一部分www.baidu.com为主机的域名,后面的 sb.jpg为资源的名称。这也就精确的说明了某个资源的位置,以及我们应该如何去访问它。

URN

URN跟前面一个兄弟很像,全称为Uniform Resource Name,意思为“统一资源名”。有什么用呢?我觉得URN比起URL更加方便,因为使用URN只需要知道一个域名就行了,而且跟目前的资源所在的地方没有关系。换句话说,如果我的网站变更了地址,如果使用URL,那么我需要告知用户新的URL,用户还要跟着改用新的URL。但如果使用URN,那么资源的地址再怎么变,永远都可以通过URN来获取这个资源。

总结

HTTPweb资源在网络中传输的载体,而如何访问网络上的web资源呢?一般可以通过URL来直接访问,而尽管URN更加便捷,但是由于URL已经在互联网上大量使用了,短时间内不可能把它替代,而且URL除了长一点,稍微难记一点也没有什么其他缺点。

扫描下方的二维码或搜索「tony老师的前端补习班」关注我的微信公众号,那么就可以第一时间收到我的最新文章。


如果觉得我的文章对你有用,请随意赞赏

你可能感兴趣的

载入中...