1. MIME是何方神圣
在此之前,我以为MIME是一种文件类型。。。。
网上说的全称是:多用途互联网邮件扩展(英语:Multipurpose Internet Mail Extensions,缩写:MIME)
还是看不懂吧?
最简单的说法:
MIME 类型是一种文本标记,表示一种主要的对象类型和一个特定的子 类型,中间由一条斜杠来分隔。
- HTML 格式的文本文档由 text/html 类型来标记。
- 普通的 ASCII 文本文档由 text/plain 类型来标记。
- JPEG 格式的图片为 image/jpeg 类型。
- GIF 格式的图片为 image/gif 类型。
- Apple 的 QuickTime 电影为 video/quicktime 类型。
- 微软的 PowerPoint 演示文件为 application/vnd.mspowerpoint 类型。
臥槽!!!
,粗俗易懂,这不就是content-type的值吗?
所以,其实MIME就是指文件类型,而不是具体某种文件类型
2. URI和URL的究竟是什么?有什么区别吗
这个问题经常面试经常被问到。
真的,我一直不能好好的讲清楚。
后面看到有人举了例子,才能真正地去讲清楚这玩意
统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。
假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。
现实当中名字当然是会重复的,所以身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。
那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,
就可以有:动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人
可以看到,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集。
URL是以描述人的位置来唯一确定一个人的。
在上文我们用身份证号也可以唯一确定一个人。对于这个在杭州的张三,我们也可以用:身份证号:123456789来标识他。
所以不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI。
回到Web上,假设所有的Html文档都有唯一的编号,记作html:xxxxx,xxxxx
是一串数字,即Html文档的身份证号码,这个能唯一标识一个Html文档,那么这个号码就是一个URI。而URL则通过描述是哪个主机上哪个路径上的文件来唯一确定一个资源,也就是定位的方式来实现的URI。对于现在网址我更倾向于叫它URL,毕竟它提供了资源的位置信息,如果有一天网址通过号码来标识变成了http://741236985.html
,那感觉叫成URN更为合适,不过这样子的话还得想办法找到这个资源咯…
现在讲清楚了吧?
不够不够
大白话,就是URI是抽象的定义,不管用什么方法表示,只要能定位一个资源,就叫URI,本来设想的的使用两种方法定位:1,URL,用地址定位;2,URN 用名称定位。
举个例子:去村子找个具体的人(URI),如果用地址:某村多少号房子第几间房的主人 就是URL, 如果用身份证号+名字 去找就是URN了。结果就是 目前WEB上就URL流行开了,平常见得URI 基本都是URL。
3.说一下1xx——信息性状态码
状态码 | 原因短语 | 含 义 |
---|---|---|
100 | Continue | 说明收到了请求的初始部分,请客户端继续。发送了这个状态码之后,服务器在收到请求之后必须进行响应。 |
101 | Switching Protocols | 说明服务器正在根据客户端的指定,将协议切换成Update首部所列的协议 |
100 Continue 状态码尤其让人糊涂。它的目的是对这样的情况进行优
化:
如果请求报文体很大,直接发送报文体,而请求由于不合法的头部被拒绝时,效率很低。
此时客户端可以在请求头部中设置Expect: 100-continue头,服务端收到该请求头,检查头部,确认请求是否可以继续,如果可以,返回 100 Continue的响应码给客户端,示意客户端继续发生报文体。否则,服务端返回417 Expectation Failed的响应码给客户端,表示请求不应该再继续。