余晖落尽暮晚霞,黄昏迟暮远山寻
本站
当前位置:网站首页 > 编程知识 > 正文

前端高频面试题HTTP协议

xiyangw 2023-10-03 16:24 30 浏览 0 评论

HTTP协议

TCP 的四次挥手简单说一下?

1. 客户端发送 FIN 给服务端

2. 服务端收到后发送 ACK 给客户端

3. 服务端发送 FIN 给客户端

4. 客户端收到后,发送 ACK 的 ACK 给服务端,服务端关闭,客户端等待 2MSL 后关闭

什么是HTTP协议?

HTTP 就是超文本传输协议呀,它的英文是 HyperText Transfer Protocol。

HTTP 是一个在计算机世界里专门在两点之间传输文字、图片、音频、视频等超文本数据的约定和规范。

你知道哪些 HTTP 的请求方法?

1. GET 获取资源 (幂等)

2. POST 新增资源

3. HEAD 获取 HEAD 元数据 (幂等)

4. PUT 更新资源 (带条件时幂等)

5. DELETE 删除资源 (幂等)

6. CONNECT 建立 Tunnel 隧道

7. OPTIONS 获取服务器支持访问资源的方法 (幂等)

8. TRACE 会显服务器收到的请求,可以定位问题。(有安全风险)

说一说你对 DNS 的理解?

DNS (Domain Name System) 是互联网中的重要基础设施,负责对域名的解析工作,为了保证高可用、高并发和分布式,它设计成了树状的层次结构。

1. 由根DNS服务器、顶级域 DNS 服务器和权威 DNS 服务器组成。

2. 解析顺序是首先从浏览器缓存操作系统缓存以及本地 DNS 缓存 (/etc/hosts) 逐级查找,然后从本地 DNS 服务器根 DNS顶级 DNS 以及权威 DNS层层递归查询。

3. 可以基于域名在内网、外网进行负载均衡。

4. 传统的 DNS 有很多问题(解析慢、更新不及时),HTTPDNS 通过客户端 SDK 和服务端配合,直接通过 HTTP 调用解析 DNS 的方式,可以绕过传统 DNS 这些缺点,实现智能调度。

(面试官:小伙子理解得挺细啊)

说一说你对 CDN 的理解?

CDN(Content Delivery Network)就是内容分发网络。

1. 为了突破现实生活中的光速、传输距离等物理限制,CDN 投入了大量资金,在全球范围内各大枢纽城市建立机房,部署大量高存储高带宽的节点,构建跨运营商、跨地域的专用高速传输网络。

2. DNS 分为中心节点、区域节点、边缘节点等,在用户接入网络后,首先通过全局负载均衡 (Global Sever Load Balance),简称 GSLB 算法负责调度,找到离用户最合适的节点。然后通过 HTTP 缓存代理技术进行缓存,缓存命中就返回给用户,否则就回源站去取。CDN 擅长缓存静态资源(图片、音频等),当然也支持动态内容的缓存。

说一说 HTTP 的重定向?

重定向是服务器发起的跳转,要求客户端使用新的 URI 重新发送请求。在响应头字段 Location 中指示了要跳转的 URI。使用 Refresh 字段,还可以实现延时重定向。

301 / 302 是常用的重定向状态码。分别代表永久性重定向临时性重定向

● 303:类似于 302,重定向后的请求方法改为 GET 方法

● 307:类似于 302,含义比 302 更明确,重定向后请求的方法和实体不允许变动

● 308:类似于 301,代表永久重定向,重定向后请求的方法和实体不允许变动

● 300:是一个特殊的重定向状态码,会返回一个有多个链接选项的页面,由用户自行选择

● 304:是一个特殊的重定向状态码,服务端验证过期缓存有效后,要求客户端使用该缓存

你知道哪些 HTTP 状态码?

1xx 请求已经接收到,需要进一步处理才能完成,HTTP/1.0 不支持

100 Continue:上传大文件前使用

101 Switch Protocols:协议升级使用

102 Processing:服务器已经收到并正在处理请求,但无响应可用

2xx 成功处理请求

200 OK:成功返回响应

201 Created:有新资源在服务器端被成功创建

202 Accepted:服务器接受并开始处理请求,但请求未处理完成

206 Partial Content:使用range协议时返回部分响应内容时的响应码

3xx 请查阅上文重定向部分,这里不再赘述。

4xx 客户端出现错误

400 Bad Request:服务器认为客户端出现了错误,但不明确,一般是 HTTP 请求格式错误

401 Unauthorized:用户认证信息确实或者不正确

403 Forbidden:服务器理解请求的含义,但没有权限执行

407 Proxy Authentication Required:对需要经由代理的请求,认证信息未通过代理服务器的验证

404 Not Found:服务器没有找到对应的资源

408 Request Timeout:服务器接收请求超时

5xx 服务器端出现错误

500 Internal Server Error:服务器内部错误,且不属于以下错误类型

502 Bad Gateway:代理服务器无法获取到合法响应

503 Service Unavailable:服务器资源尚未准备好处理当前请求

505 HTTP Version Not Supported:请求使用的 HTTP 协议版本不支持

相关推荐

排序算法--归并排序_归并排序例题讲解

原理如图所示(先分割再合并):归并排序代码工作原理:1、申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列2、设定两个指针,最初位置分别为两个已经排序序列的起始位置3、比较两个指针所...

八大排序算法-归并排序_归并排序 算法

算法思想归并排序分为三个步骤:1.分解:将数列分解成n个子数列。(如果是将数列分成2个子数列则为2路归并)2.治理:对每个子数列进行排序操作3.合并:将两个排好序的子数列进行合并生成新的数列算法实现P...

高级排序之归并排序、希尔排序_希尔排序和归并排序区别

前言继上次排序算法简单排序算法之冒泡、插入和选择排序-Java实现版后,本文学习高级排序算法——归并排序、希尔排序,快速排序将在后续更新。本文实现代码调用方法,部分来自前一个文章:简单排序算法之冒泡、...

Excel办公应用:按合并单元格排序的三大方法

1.按姓名对科目排序重点:在"C2"中输入公式=IF(A2<>"",1,C1+1),然后下拉填充。2.按姓名添加连续序号(方法一)重点:选择"A2:A11"单元格区域,在编辑栏中输入公...

快速排序 Vs. 归并排序 Vs. 堆排序——谁才是最强的排序算法

知乎上有一个问题是这样的:堆排序是渐进最优的比较排序算法,达到了O(nlgn)这一下界,而快排有一定的可能性会产生最坏划分,时间复杂度可能为O(n^2),那为什么快排在实际使用中通常优于堆排序?昨天刚...

归并排序思路图解 #归并排序_归并排序百度百科

排序算法1.图解。OK,让它排一下。看好了,要开始排了。能看出来像递归吗?肯定算法难,但是这个次数非常的多,不用管次数。这个是帝规,就是递归。这是并,这是并,这是两个有序数,组合成一个最后的大的有序数...

排序算法学习——归并排序_归并排序算法稳定吗

我们先看归并排序的定义归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每...

动画|经典的归并排序究竟怎么玩儿?

作者|菠了个菜责编|郭芮由于LeetCode上的算法题很多涉及到一些基础的数据结构,为了更好的理解后续更新的一些复杂题目的动画,推出一个新系列——《图解数据结构》,主要使用动画来描述常见的数据...

Excel中,多列数据统一排名,Rank函数直接搞定

Rank实现多列联合排序排序,那太简单啦,Excel中,升序降序,一个按键就可以。但,那是针对单列情况,若需要联合多列数据进行排序呢?如下图所示,需要对1、3、5列进行统一排序,咋弄嘞?联合排序案例先...

【数据结构与算法】归并排序_数据结构中归并排序

归并排序是建立在归并操作的一种高效的排序方法,该方法采用了分治的思想,比较适用于处理较大规模的数据,但比较耗内存,今天我们聊聊归并排序排序思想一天,小一尘和慧能坐在石头上,眺望着远方师傅,我听山下的柳...

C++基础算法:归并排序_经典排序算法-----归并排序(c语言实现)

归并排序(MergeSort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(DivideandConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列。...

马士兵说之归并排序_马士兵教育的内推是真的

大家对于排序应该是挺熟悉的吧,马士兵老师特意为排序出了一波视频,当然文章是转自博客园的,马士兵老师的视频观看请点击下方的了解更多概要本章介绍排序算法中的归并排序。内容包括:1.归并排序介绍2.归并...

C++快速排序和归并排序_c++快速排序sort

快速排序每一轮挑选一个基准元素(随机选择,编程时一般选取第一个),并让比它大或小的元素移动到基准元素的两边,把数列拆解成了两个部分。而后对这两部分分别进行快速排序。时间复杂度:O(nlogn),辅助空...

经典的排序算法——归并排序_归并排序算法步骤

归并排序(MergeSort)是一种基于分治策略的高效排序算法。它将原始数组不断地分割成两个子数组,直到每个子数组只剩下一个元素为止(即基本有序),然后再通过合并已排序的子数组来最终得到完全有序的大...

归并排序_归并排序c++实现

归并排序概念:归并排序中涉及到一个概念就是分而治之,总序列化成小序列,将小序列排序好,利用排序好的小序列,再归并排序成原来要排序的序列。所以排序前先要分:functiondivide(arr){...

取消回复欢迎 发表评论: