最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Http学习篇

    正文概述 掘金(xback_范范)   2021-07-14   465

    学习资料链接

    HTTP面试篇

    1.http请求头和响应头里有哪些参数

    Request Headers

    • Accept: 客户端能接收的资源类型
    • Accept-language: 客户端能接收的语言类型
    • Accept-Encoding: 客户端能接收的压缩数据类型
    • connection: 客户端和服务端的连接关系
    • Host: 目标主机和端口号(用于虚拟主机)
    • User-Agent: 客户端版本号名字
    • Cookie: 客户端暂存服务端的信息
    • Date: 客户端请求服务端的时间

    Response Headers

    • Connection: 客户端和服务端保持的连接关系
    • Content-Encoding: 服务端压缩编码类型
    • Content-Type: 资源类型 application/json;charset=utf-8 ; text/css; application/javascript;
    • Content-Length: 压缩数据的长度
    • Cache-Control
    • Last-Modified: 上次修改时间
    • Etag: 上次修改时间
    • Access-Control-Allow-Credentials
    • Access-Control-Allow-Origin
    • Access-Control-Allow-Methids
    • Date: 服务端响应时间

    2. cookie选项

    一文看懂cookie

    • Name
    • Value
    • Domin
    • Path
    • Expires/MaxAge
    • Size
    • HttpOnly: 禁止js读取cookie
    • Secure: 只有https能携带cookie信息
    • SameSite: 禁止跨域,防止
    • Priority: 优先级

    3.什么是HTTP,HTTPS和HTTP的区别

    HTTP协议

    超文本传输协议,是实现网络通信的一种规范

    • 灵活:支持客户端/服务端模式
    • 简单快速:客户端请求服务器时,只需要传送请求方法和路径
    • 无连接:每次连接只处理一个请求,随后断开
    • 无状态:HTTP请求无法根据以前的状态处理本次请求

    HTTPS协议

    由于HTTP是以明文的形式进行数据传输,不安全,HTTPS = HTTP + SSL/TLS,让HTTP协议运行在安全的SSL/TLS协议上,通过SSL证书来验证服务器的身份,并为浏览器和服务器之间的通信进行加密

    SSL/TLS协议运行在TCP/IP协议和应用层协议之间,浏览器和服务器建立SSL连接时需要选择一组恰当的加密算法来实现安全通信,为数据通信提供安全支持

    区别

    • http是明文传输不安全
    • 默认端口不一样,http是80, https是443
    • https需要SSL证书,证书要钱,费用高

    4.HTTPS如何保证安全

    HTTP协议存在的问题

    • 使用明文通信,内容可能被窃听
    • 不验证身份,因此可能遭到伪装

    HTTPS

    使HTTP协议运行在SSL/TSL协议之上,安全性由SST来保证

    SSL:Secure Socket Layer 安全套接字协议 TSL: 传输层协议

    优势

    信息加密、完整性校验、身份验证

    实现

    SSL的实现主要依赖于以下几种手段

    • 对称加密: 采用协商的密钥对数据加密
    • 非对称加密: 实现身份认证和密钥协商
    • 摘要算法: 验证信息的完整性
    • 数字签名: 身份验证

    对称加密

    加密和解密的密钥是同一个。只要保证了对称密钥是安全的,就可以保证通信安全,而如何保证对方拿到安全的对称密钥,使用到了非对称加密技术。

    非对称加密

    公钥加密和私钥解密,公钥可公开给任何人使用,私钥保密

    混合加密

    在HTTPS通信过程中,使用的是对称加密+非对称加密。

    发送密文的一方使用对方的公钥进行加密处理“对称的密钥”,这样对方用自己的私钥拿到了对称的密钥,之后就可以通过这个对称的密钥进行加密通信

    摘要算法

    一种特俗的压缩算法,常说的散列函数、哈希函数,给数据生成了一个数字指纹。发送一段数据的时候,附上她的摘要,对方接收到数据之后进行对比,就知道数据有没有被修改。

    数字签名

    数字签名可以确定消息是由发送方签名发出来的,因为别人假冒不了发送方的签名。

    原理是利用私钥加密,公钥解密。

    签名和公钥一样公开。

    CA验证机构

    引入第三方机构,确保安全性

    5.如何理解UDP和TCP, 区别,应用场景

    TCP

    传输控制协议。

    UDP

    用户数据包协议,简单的面向数据包的通信协议,即对应用层交下来的报问,不合并,不拆分,只是在上面加了首部之后就交给了下面的网络层。

    区别

    • 可靠性: TCP可靠(面向连接、不丢失)、UDP不可靠(面向无连接、存在丢失的可能)
    • 连接性: TCP面向连接、UDP无连接
    • 报文: TCP面向字节流、UDP面向报文
    • 双共性: TCP全双工、UDP一对一/一对多/多对多
    • 流量控制:TCP滑动窗口、UDP无
    • 拥塞控制: TCP慢开始/拥塞避免/快重传、UDP无
    • 传输效率: TCP慢、UDP快

    应用场景

    TCP:邮件、QQ文件传输、浏览器 UDP:QQ语音、QQ视频、直播

    6.OSI七层模型

    从下往上:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

    TCP/UDP位于传输层

    IP位于网络层

    7.DNS协议是什么?DNS查询完整过程

    DNS

    域名系统,是互联网的一项服务, 是进行域名和与之对应的ip地址进行转换的服务器。

    域名

    域名是具有层次的结构,从上到下分为根域名、顶级域名(net、com、org、edu、cn)、二级域名、三级域名、、、、

    www.xxx.com: www为三级域名、xxx为二级域名、com为顶级域名

    在域名的每一层都有一个域名服务器,除此之外,还有电脑默认的本地域名服务器

    Http学习篇

    DNS查询方式

    • 递归查询

    • 迭代查询

    域名缓存

    两种缓存方式

    • 浏览器缓存
    • 操作系统缓存(用户自己配置的host文件)

    域名解析过程

    • 搜索DNS缓存,先浏览器缓存,再操作系统缓存
    • 请求本地域名服务器,本地域名符预期递归查询自己的DNS缓存,查找成功则返回结果
    • 向上迭代查询,本地域名服务器向根域名服务器发起请求,根服务器返回顶级域名服务器的地址给本地服务器
    • 本地服务器向顶级域名服务器发送请求,获取权限服务器的地址
    • 本地服务器向权限服务器发送请求,获得最终的IP地址
    • 本地服务器拿到IP地址,返回给操作系统,同时将自己的IP地址缓存
    • 操作系统将IP地址返回给浏览器,同时缓存
    • 浏览器获得IP地址,缓存

    Http学习篇

    8.CDN

    内容分发网络。构建在现有的网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。

    关键技术

    • 负载均衡
    • 缓存技术

    原理分析

    没有应用CDN之前,DNS查询返回的是目标服务器的IP地址

    应用CDN之后,DNS查询返回的是一个CNAME(Cannonical Name)别名记录,指向CDN的全局负载均衡

    CNAME在域名解析中承担了中间人的角色,是实现CDN的关键

    负载均衡系统

    由于没有返回IP地址,于是本地DNS会向负载均衡系统发送请求,全局负载均衡系统进行智能调度

    • 根据用户的IP地址,查表得知地理位置,找到最近的边缘节点
    • 看用户所在的运营商网络,找到相同网络的边缘节点
    • 检查边缘节点的负载情况,找负载较轻的节点

    综合找到最合适的边缘节点,把这个节点返回给用户,用户就能就近访问CDN的缓存

    缓存代理

    缓存系统可以划分层次,分为一级缓存节点、二级缓存节点。一级缓存节点配置高一些,直连源站;二级缓存节点配置低一些,直连用户。

    回源的时候二级缓存只找一级缓存,一级缓存没有才回源站,可以有效的减少真正的回源。

    CDN服务质量指标

    • 回源率
    • 命中率

    9. HTTP1.0/1.1/2.0的区别

    HTTP1.0

    • 无连接、无状态(每次请求与服务器建立一个TCP连接,请求结束后关闭)
    • 只支持GET、POST请求

    HTTP1.1

    • 默认支持长连接(Connection: Keep-Alive)(一个TCP连接上可以传送多个HTTP请求和响应)
    • 允许客户端一个请求未完成就发送下一个请求,但是服务端必须按照客户端请求的顺序先后返回结果
    • 增加了更多的请求头和响应头(Last-Modified、If-Modified-Since、Etag、If-None-Match等缓存头来控制缓存策略)
    • 引入range,允许请求资源的某一部分
    • 引入host,虚拟主机
    • 增加了put、delete、option请求

    HTTP2.0

    • 多路复用

    HTTP1.1,一个TCP链接上发送多个请求,有先后顺序规定。但是HTTP2.0,在一个TCP连接里,客户端和服务器都可以发送请求,而且不要求按照顺序,避免了“对头堵塞”

    • 二进制分帧

    帧是HTTP2.0中最小的通信单位。HTTP2.0才用二进制格式传输数据,非1.x的文本格式,解析起来更高校

    • 首部压缩

    减少冗余数据,传输体积减少,降低开销

    • 服务器推送

    允许服务器向客户端推送消息

    10.HTTP状态码

    • 100: 用于POST大数据传输,在传输之前先征询服务器情况,是否处理POST数据
    • 200: 成功
    • 206: 断点续传,视频大文件的加载
    • 301: 永久重定向 (常用于新旧域名替换)
    • 302: 临时重定向 (常用于未登陆页面重新定向到登陆页面)
    • 304:协商缓存 (告诉客户端直接使用缓存中的数据,只返回头部信息,没有内容)
    • 400: 参数错误,服务端无法识别
    • 401: 未登录
    • 403: 禁止访问 (比如只有内网能访问的一些资源)
    • 404: 资源路径错误
    • 503: 服务器停机维护,使用503响应请求
    • 504: 网关超时

    11.GET和POST请求

    • 请求资源的形式: GET获取资源、POST提交资源
    • 携带参数: GET在url上、POST在body中
    • 参数大小限制: GET 2kb 、 POST无限制
    • 安全性: POST比GET更安全,因为数据在地址栏不可见(但是从传输角度来说,明文传输都不安全)

    12.TCP为什么需要三次握手和四次挥手

    三次握手

    建立一个TCP连接,需要客户端和服务器总共发送3个包

    作用是确认双方的接收和发送能力是否正常,指定自己的初始化序列号为后面的可靠性传输做准备

    第一次握手: 客户端发送一个SYN报文,并指明客户端的初始化序列号ISN

    第二次握手: 服务端役自己的SYN报文应答,为了确认客户端的SYN报文,将客户端的ISN + 1 作为ACK的值

    第三次握手:客户端发送ACK报文,值为服务器的ISN + 1

    Http学习篇

    四次挥手

    第一次挥手: 客户端发送一个FIN报文,报文中制定一个序列号

    第二次挥手: 服务端接收到FIN报文,发送ACK报文,值为客户端序列号+1

    第三次挥手:如果服务器也想断开连接,会向客户端发送一个FIN报文,指定一个序列号

    第四次挥手: 客户端发送ACK报文应答,值为服务端序列号+1

    Http学习篇

    13. WebSocket的理解

    是一种网络协议,应用层协议。可在单个TCP连接上进行全双工通信,能够更好的节省服务器资源和带宽并达到实时通讯

    客户端和服务端只需要完成一次握手,就可以建立持久性的通信,并进行双向数据传输

    websocket之前实现实时通讯的方式为轮询

    引入ws和wss分别代表明文和密文的websocket协议,且默认端口使用80或443,几乎与http一致

    优点

    相较于HTTP: 更强的实时性、保持连接的状态(不用每次带身份信息)、较小的开销(数据包头部协议较小)

    应用场景

    • 弹幕
    • 媒体聊天
    • 体育实况更新
    • 股票基金报价的实时更新

    下载网 » Http学习篇

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元