在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
HTTP相信大家都不陌生了,作为一种应用最为广泛的网络传输协议,它也常常出现在面试考题之中。本文汇总了目前比较常考的HTTP面试题,并整理好了所有HTTP面试题的答案,希望可以帮助到正在复习HTTP相关知识点的小伙伴~

1、HTTP和HTTPS的区别有哪些?
HTTP是一种超文本传输协议,HTTP是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。 HTTPS比 HTTP多了secure安全性这个概念,实际上, HTTPS并不是一个新的应用层协议,它其实就是HTTP + TLS/SSL协议组合而成,HTTPS可以说就是身披了一层SSL的HTTP。它们最大的区别就是HTTP 在地址栏上的协议是以 http:// 开头,而 HTTPS 在地址栏上的协议是以 https:// 开头。另外,HTTP是未经安全加密的协议,它的传输过程容易被攻击者监听、数据容易被窃取、发送方和接收方容易被伪造;而HTTPS是安全的协议,它通过 密钥交换算法 - 签名算法 - 对称加密算法 - 摘要算法 能够解决上面这些问题。还有,HTTP 的默认端口是80,而HTTPS的默认端口是443。
2、HTTP Get和Post区别是什么?
HTTP中包括许多方法,Get和Post是HTTP中最常用的两个方法。get方法一般用于请求,而post方法一般用于表单的提交。get相当于一个是pull/拉的操作,而post相当于是一个push/推的操作。get请求的URL有长度限制,而post请求会把参数和值放在消息体中,对数据长度没有要求。get请求会被浏览器主动cache,而post不会,除非手动设置。get请求在浏览器反复的回退/前进操作是无害的,而post操作会再次提交表单请求。
3、UDP是什么?
UDP是用户数据报协议。它不需要所谓的握手操作,从而加快了通信速度,允许网络上的其他主机在接收方同意通信之前进行数据传输。UDP 的特点主要有,能够支持容忍数据包丢失的带宽密集型应用程序,具有低延迟的特点,能够发送大量的数据包,能够允许DNS查找,DNS是建立在UDP之上的应用层协议。
4、TCP 是什么?
TCP是传输控制协议。它能够帮助你确定计算机连接到Internet以及它们之间的数据传输。通过三次握手来建立TCP连接,三次握手就是用来启动和确认TCP连接的过程。一旦连接建立后,就可以发送数据了,当数据传输完成后,会通过关闭虚拟电路来断开连接。
5、描述一下TCP 三次握手和四次挥手?
TCP 三次握手:SYN是TCP/IP建立连接时使用的握手信号。在客户机和服务器之间建立TCP连接时,首先会发送的一个信号。客户端在接受到SYN消息时,就会在自己的段内生成一个随机值X。服务器收到SYN后,打开客户端连接,发送一个SYN-ACK作为答复。确认号设置为比接收到的序列号多一个,即X + 1,服务器为数据包选择的序列号是另一个随机数Y。最后,客户端将ACK发送给服务器,序列号被设置为所接收的确认值即Y + 1。
TCP 四次挥手:在连接终止阶段使用四次挥手,连接的每一端都会独立的终止。具体过程如图所示:

6、请你说一下HTTP常见的请求头
这个问题比较开放,因为 HTTP 请求头有很多,这里只简单举出一个例子。HTTP标头会分为四种,分别是 通用标头、实体标头、请求标头、响应标头。Cache-Control 是一个通用标头,他可以出现在请求标头和响应标头中,Cache-Control 的种类比较多,虽然说这是一个通用标头,但是有一些特性是请求标头具有的,有一些是响应标头才有的。主要大类有 可缓存性、阈值性、 重新验证并重新加载 和其他特性。
7、地址栏输入URL发生了什么?
下面我们就来探讨一下从输入URL后到响应,都经历了哪些过程。首先,你需要在浏览器中的URL地址上,输入你想访问的地址。然后,浏览器会根据你输入的URL地址,去查找域名是否被本地DNS缓存。在由根域名服务器 -> 顶级域名服务器 -> 权威DNS服务器后,由权威服务器告诉本地服务器目标IP地址,再有本地DNS服务器告诉用户需要访问的IP地址。
8、HTTPS的工作原理。
HTTPS的工作原理其实就是SSL/TLS的握手过程。在 TLS 握手期间,Internet 中的通信双方会彼此交换信息,验证密码套件,交换会话密钥。每当用户通过 HTTPS 导航到具体的网站并发送请求时,就会进行 TLS 握手。除此之外,每当其他任何通信使用HTTPS(包括 API 调用和在 HTTPS 上查询 DNS)时,也会发生 TLS 握手。TLS 具体的握手过程会根据所使用的密钥交换算法的类型和双方支持的密码套件而不同。我们以RSA 非对称加密来讨论这个过程。整个 TLS 通信流程图如下:

以上就是HTTP面试题汇总以及答案,大家都会做了吗?如果对于相关知识点还有疑问,欢迎大家报名博学谷的在线课程,将会有一对一讲师为大家提供就业服务。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
2019年IT软件开发中Python、Java、Go语言哪个前景好?
2019年IT软件开发中Python、Java、Go语言各有各的优势,24岁的Java,早已不再年轻,但依然是最流行的编程语言;为软件开发而生的Go语言,可以在不损失应用程序性能的情况下降低代码的复杂性;Python更是力压C++,占据最受欢迎排行榜的Top3成为开发者最想要掌握的技能之一。
13993
2019-07-15 15:44:12
学习电脑编程多久能学会?
学习不是一蹴而就的事情,学习电脑编程多久能学会?学习电脑编程是一个系统的学习过程,掌握相应技能的时间因个人基础情况以及空于学习时间多种因素来影响,学习者不同的知识结构、学习目标、应用场景等对学习时间都有影响,如果想高效学些空于选择电脑编程培训班学习,一般学习周期需要5~6个月。
11896
2019-11-23 14:51:07
如何通过阅读代码学习编程?
当初学者完成了编程语言中基础语法的学习之后,就需要尝试把之前学过的理论知识运用起来。那么具体怎么运用呢?最好的方法就是进行阅读代码的练习。当然,去哪里找代码阅读,以及如何通过阅读代码学习编程,都是初学者会困扰的。大家不要着急,下面我们来一一解决这些问题。
9078
2020-04-30 16:10:17
双码农家庭20年就能实现财务自由?这是真的么?
最近小谷发现某论坛出现这样的提问——如果夫妻两个都是大厂程序员的话,那么在一线城市买房是不是很简单?财富自由是不是很简单?假设一年存50万,算下来工作20年,就能存1千万,500万用来买房,500万用来理财或者放在银行吃利息。
6895
2021-09-06 17:55:03
IT互联网程序员的涨薪秘籍是什么?
T行业的高薪酬并不是秘密,其远高于其他行业的薪资水平让越来越多的年轻人主动投身IT行业。一个能不断涨薪的程序员与自身的努力是分不开,毕竟技术是有一定门槛的,需要日复一日的学习和操练方能扎实掌握。
6023
2022-09-16 15:31:52
