赞
踩
本文是我的前端面试系列的网络篇,汇总整理了网络相关的常见面试题,后续的复习过程中随时会对本文查漏补缺。复习这部分内容的时候,感觉又回到了大学时期的“计算机网络”课堂。
每个题目后面的推荐内容或参考链接,个人认为其阅读价值更高,值得仔细研读。
本文是 网络篇 的内容,其他章节内容更新后可在专栏查看:
2024前端面试系列--Vue 篇
2024前端面试系列-- JS 篇
2024前端面试系列--HTML & CSS篇
2024前端面试系列-- webpack & Git篇
HTTP (HyperText Transfer Protocol)
,即超文本传输协议,是一种实现网络通信的规范。它定义了客户端和服务器之间交换报文的格式和方式,默认使用的是80端口
,其底层使用TCP
作为传输层协议,保证了数据传输的可靠性。
特点:
简单快速:客户端向服务器请求服务时,只需传送请求方法和路径。由于HTTP
协议简单,使得HTTP
服务器的规模小,因而通信速度很快。
灵活:HTTP
允许传输任意类型的数据对象。
无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
无状态:HTTP
协议无法根据之前的状态进行本次的请求处理。
明文:HTTP
是以明文的形式传递内容。
HTTPS
是HTTP
协议的安全版本。HTTPS
的出现主要是为了解决HTTP
明文传输内容导致其不安全的特性。为保证数据加密传输,让HTTP
运行安全的SSL/TLS
协议上,即 HTTPS = HTTP + SSL/TLS
。通过SSL
证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密。
二者的区别:
安全性:HTTP
协议的数据传输是明文的,是不安全的;HTTPS
使用了SSL/TLS
协议进行加密处理,相对更加安全。
连接方式:二者使用的连接方式不同,HTTP
是三次握手,HTTPS
是三次握手+数字证书。
默认端口:HTTP
的默认端口是80
;HTTPS
的默认端口是443
。
响应速度:由于HTTPS
需要进行加解密过程,因此速度不如HTTP
。
费用:HTTPS
需要使用SSL
证书,功能越强大的证书其费用越高;HTTP
不需要。
连接:HTTP 1.0
默认使用非持久连接,HTTP 1.1
则默认使用持久连接。HTTP 1.1
通过使用持久连接来使多个HTTP请求复用同一个TCP
连接,避免了HTTP 1.0
中使用非持久连接造成的每次请求都需要建立连接的时延。
缓存:HTTP 1.0
主要使用header
中的If-Modified-Since
,Expires
来做为缓存判断的标准;HTTP 1.1
则引入了更多的缓存控制策略,例如:Etag
、If-Unmodified-Since
、If-Match
、If-None-Match
等更多可供选择的缓存头来控制缓存策略。
资源请求:HTTP 1.0
中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能;HTTP 1.1
则在请求头引入了range
头域,它允许只请求资源的某个部分,即返回码是 206(Partial Content)
,这样就方便了开发者自由的选择以便于充分利用带宽和连接。
host:HTTP 1.1
引入了host
,用来指定服务器的域名。
方法:HTTP 1.1
相较于HTTP 1.0
新增了许多方法,如:put
、delete
、options
等。
状态码第一位数字决定了不同的响应状态:1xx
表示请求已被接受,需要继续处理;2xx
表示请求成功;3xx
表示重定向;4xx
表示客户端错误;5xx
表示服务端错误。
常见的状态码:
101
:服务器根据客户端的请求切换协议,主要用于websocket
或http2
升级
200
:请求已成功,请求所希望的数据将随响应一起返回。
201
:请求成功并且服务器创建了新的资源。
202
:服务器已接受响应请求,但尚未处理。
301
:请求的网页已永久移动至新的位置。
302
:临时重定向/临时转移。服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
304
:本次获取到的内容是读取缓存中的数据,会每次去服务器校验。
401
:请求需要进行身份验证,尚未认证,没有登录网站。
403
:禁止访问,服务器拒绝请求。
404
:服务器没有找到相应资源。
500
:服务器遇到错误,无法完成对请求的处理。
503
:服务器无法使用。
三次握手
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。