那些年,我讲不清楚的http面试题

MIME是用于表示不同类型的互联网内容的文本标记,如HTML、JPEG等。URI是统一资源标识符,用来唯一标识资源,URL是其子集,提供资源的位置信息。HTTP的1xx信息性状态码,如100 Continue和101 Switching Protocols,用于在请求处理过程中的通信优化。
摘要由CSDN通过智能技术生成

1. MIME是何方神圣

在此之前,我以为MIME是一种文件类型。。。。

网上说的全称是:多用途互联网邮件扩展(英语:Multipurpose Internet Mail Extensions,缩写:MIME)

还是看不懂吧?

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EzgQRCOh-1601345541942)(https://imgkr2.cn-bj.ufileos.com/cb730d42-e245-4ed4-b1f0-98fc1cb925aa.png?UCloudPublicKey=TOKEN_8d8b72be-579a-4e83-bfd0-5f6ce1546f13&Signature=voUtM%252BSj%252FHo8wgeA%252FWn0VjUM7l4%253D&Expires=1601379716)]

最简单的说法:

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——信息性状态码

状态码原因短语含  义
100Continue说明收到了请求的初始部分,请客户端继续。发送了这个状态码之后,服务器在收到请求之后必须进行响应。
101Switching Protocols说明服务器正在根据客户端的指定,将协议切换成Update首部所列的协议

100 Continue 状态码尤其让人糊涂它的目的是对这样的情况进行优

如果请求报文体很大,直接发送报文体,而请求由于不合法的头部被拒绝时,效率很低。
此时客户端可以在请求头部中设置Expect: 100-continue头,服务端收到该请求头,检查头部,确认请求是否可以继续,如果可以,返回 100 Continue的响应码给客户端,示意客户端继续发生报文体。否则,服务端返回417 Expectation Failed的响应码给客户端,表示请求不应该再继续。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值