硬核!
30张图解HTTP常见面试题 Onlythroughfocuscanyoudoworld-class things nomatterhowcapableyouare." BillGates 不管你的能力如何,只有透过专注你才能做世界级的事 比尔盖兹 前言 在面试过程中,HTTP被提问的概率还是比较高的.
小林我搜集了5大类HTTP面试常问的题目,同时这5大类题跟HTTP的发展和演变关联性是比较大 的,通过问答图解的形式由浅入深的方式帮助大家进一步的学习和理解HTTP.
1.HTTP基本概念 2. Get 与 Post 3.HTTP特性 4. HTTPS 与 HTTP 5.HTTP/1.1、HTTP/2、HTTP/3 演变 HTTP基本知识 HTTP 量什么7 HTTP期见的状态码有都查?
htp常买牛投有?
CET与POST CET 和 POST 有哪性区别? CET和POST方法是费全喜等的与?
HTTP特性 HTTP形邦的优点 HTTP我界些快点?
HTTP五大类面试题 HTP性?
HTTPHTTPS哪区刷?
HTTP与HTTPS HTTPS解决了HTTP的感些可整?
HTTPS最始可解决HTTP不要全键的?
HTTPS是始何建立连接的?
其同交互了什么?
HTTP/.1.HTTP/2.HTTP/3演变 说说HTTP/L1比 HTTP1.0提高了什么性?
HTTP/2对HTTP/1数了电也优化?
HTTP/2有果担缺始?
HTTP/3食了帮些优化?
正文 01HTTP基本概念 HTTP是什么?
描述一下 HTTP是超文本传输协议,也就是HyperTextTransferProtocol 能否详细解释「超文本传输协议」?
HTTP的名字「超文本协议传输],它可以拆成三个部分: 超文本 传输 协议 超文本 传输 协议 1.「协议/ 在生活中,我们也能随处可见「协议],例如: 刚毕业时会签一个「三方协议]; 找房子时会签一个「租房协议];
XXX三方协议 XXX租房协议 **************** **************** **************** **************** **************** **************** **************** **************** **************** **************** **************** **************** **************** **************** 生活中的协议,本质上与计算机中的协议是相同的,协议的特点: 「协」字,代表的意思是必须有两个以上的参与者.
例如三方协议里的参与者有三个:你、公 司、学校三个;租房协议里的参与者有两个:你和房东.
「议」字,代表的意思是对参与者的一种行为约定和规范.
例如三方协议里规定试用期期限、毁 约金等:租房协议里规定租期期限、每月租金金额、违约如何处理等.
针对HTTP协议,我们可以这么理解.
的规范(两个以上的参与者),以及相关的各种控制和错误处理方式(行为约定和规范) 2.传输 所谓的「传输],很好理解,就是把一堆东西从A点到B点,或者从B点搬到A点.
别轻视了这个简单的动作,它至少包含两项重要的信息.
HTTP协议是一个双向协议.
我们在上网冲浪时,浏览器是请求方A,百度网站就是应答方B.
双方约定用HTTP协议来通信,于 是浏览器把请求数据发送给网站,网站再把一些数据返回给浏览器,最后由浏览器染在屏幕,就可以 看到图片、视频了.
*ww.baidu. 请求→ 请求一 → 一应答 A鑫户端 B服务器 数据虽然是在A和B之间传输,但允许中间有中转或接力
就好像第一排的同学想传递纸条给最后一排的同学,那么传递的过程中就需要经过好多个同学(中间 人),这样的传输方式就从「AB],变成了[ANMB].
而在HTTP里,需要中间人遵从HTTP协议,只要不打扰基本的数据传输,就可以添加任意额外的东 西.
针对传输,我们可以进一步理解了HTTP.
HTTP是一个在计算机世界里专门用来在两点之间传输数据的约定和规范.
3.[超文本] HTTP传输的内容是「超文本].
我们先来理解「文本],在互联网早期的时候只是简单的字符文字,但现在「文本」的涵义已经可以扩 展为图片、视频、压缩包等,在HTTP眼里这些都算作「文本].
再来理解「超文本」,它就是超越了普通文本的文本,它是文字、图片、视频等的混合体,最关键有超 链接,能从一个超文本跳转到另外一个超文本.
HTML就是最常见的超文本了,它本身只是纯文字文件,但内部用很多标签定义了图片、视频等的链 接,再经过浏览器的解释,呈现给我们的就是一个文字、有画面的网页了.
OK,经过了对HTTP里这三个名词的详细解释,就可以给出比「超文本传输协议」这七个字更准确更 有技术含量的答案: HTTP是一个在计算机世界里专门在「两点」之间「传输」文字、图片、音频、视频等「超文本」数据 的「约定和规范」.
那「HTTP是用于从互联网服务器传输超文本到本地浏览器的协议,这种说法正确吗?
这种说法是不正确的.
因为也可以是「服务器服务器」,所以采用两点之间的描述会更准确.
HTTP常见的状态码,有哪些?
五大类HTTP状态码 具体含义 常见的状态码 1xx 提示信息,表示目前是协议处理的中间状态,还需要后续的操作; 2xx 成功,报文已经收到并被正确处理; 200.204.206 3xx 重定向,资源位置发生变动,需要客户端重新发送请求; 301. 302. 304 4xx 客户端错误,请求报文有误,服务器无法处理; 400 403 404 5xx 服务器错误,服务器在处理请求时内部发生了错误.
500.501 502 503
1xx 1xx类状态码属于提示信息,是协议处理中的一种中间状态,实际用到的比较少.
2xx 2xx类状态码表示服务器成功处理了客户端的请求,也是我们最愿意看到的状态.
「200OK」是最常见的成功状态码,表示一切正常.
如果是非HEAD请求,服务器返回的响应头都 会有body数据.
「204NoContent」也是常见的成功状态码,与200OK基本相同,但响应头没有body数据.
「206PartialContent」是应用于HTTP分块下载或断点续传,表示响应返回的body数据并不是资源 的全部,而是其中的一部分,也是服务器处理成功的状态.
3xx 3xx类状态码表示客户端请求的资源发送了变动,需要客户端用新的URL重新发送请求获取资源, 也就是重定向.
「301MovedPermanently」表示永久重定向,说明请求的资源已经不存在了,需改用新的URL再次 访问.
「302Found」表示临时重定向,说明请求的资源还在,但暂时需要用另一个URL来访问.
301和302都会在响应头里使用字段Location,指明后续要跳转的URL,浏览器会自动重定向新的 URL. 「304NotModified]不具有跳转的含义,表示资源未修改,重定向已存在的缓冲文件,也称缓存重定 向,用于缓存控制.
4xx 4xx类状态码表示客户端发送的报文有误,服务器无法处理,也就是错误码的含义.
「400BadRequest」表示客户端请求的报文有错误,但只是个笼统的错误.
「403Forbidden」表示服务器禁止访问资源,并不是客户端的请求出错.
「404NotFound]表示请求的资源在服务器上不存在或未找到,所以无法提供给客户端.
5xx 5xx类状态码表示客户端请求报文正确,但是服务器处理时内部发生了错误,属于服务器端的错误 码.
「500InternalServerError」与400类型,是个笼统通用的错误码,服务器发生了什么错误,我们并 不知道.
「501NotImplemented]表示客户端请求的功能还不支持,类似即将开业,敬请期待“的意思.