许久没有写博客,说是懒也好,说是沉淀自己也好,这段时间要给自己开一个新坑(尽管自己还有坑没填完)。之前一直想找点东西写一下,但是像是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
来获取这个资源。
总结
HTTP
是web资源在网络中传输的载体,而如何访问网络上的web资源呢?一般可以通过URL
来直接访问,而尽管URN
更加便捷,但是由于URL
已经在互联网上大量使用了,短时间内不可能把它替代,而且URL
除了长一点,稍微难记一点也没有什么其他缺点。
扫描下方的二维码或搜索「tony老师的前端补习班」关注我的微信公众号,那么就可以第一时间收到我的最新文章。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。