首页 > 其他分享 >网络复习题

网络复习题

时间:2024-04-30 15:13:50浏览次数:23  
标签:缓存 HTTP 网络 复习题 响应 HTTPS 服务器 客户端

HTTP缓存

HTTP缓存是一种存储和重用HTTP响应的机制,以减少服务器的延迟和网络负载。HTTP缓存可以存在于多个位置,包括客户端(如浏览器缓存)、代理服务器(如公司或ISP的缓存服务器)以及原始服务器的附近(如反向代理缓存,例如Varnish或CDN节点)。

缓存的实现通常遵循以下步骤:

  1. 缓存存储:

    • 当一个HTTP请求发出时,缓存会检查其存储,查看是否有匹配的响应副本。
    • 如果找到有效的缓存条目,并且没有过期(根据Cache-ControlExpires头部),缓存将返回该响应。
  2. 新鲜度检查:

    • 如果缓存的副本被认为是过时的(即已超过其max-ageExpires时间),缓存可能需要向原始服务器进行新鲜度检查。
    • 新鲜度检查可以通过条件GET请求实现,使用If-Modified-SinceIf-None-Match头部来询问服务器内容是否有更新。
  3. 验证和更新:

    • 如果服务器返回304 Not Modified响应,这意味着缓存的副本仍然是最新的。缓存可以更新其头部信息,并将其作为响应发送给客户端。
    • 如果服务器返回一个新的200 OK响应,缓存将替换其存储中的旧副本,并将新响应发送给客户端。
  4. 缓存控制头部:

    • Cache-Control头部中的指令控制着响应是否可以被缓存,以及可以被缓存多久。
    • ETagLast-Modified头部提供了内容的版本信息,用于在后续请求中进行验证。
  5. 缓存策略:

    • 缓存可能实施不同的策略来决定何时淘汰旧的缓存条目,例如最少使用(LRU)策略。
    • 缓存还可能根据Vary响应头部对请求进行细粒度的匹配,确保内容的正确版本被提供给正确的客户端。

HTTP缓存是一个复杂的主题,具体实现取决于许多因素,包括HTTP协议的细节、缓存服务器的配置以及原始服务器的响应头部。然而,基本原则是相同的:缓存通过保存并重新使用HTTP响应来减少重复的数据传输,从而提高性能并减少延迟。

例如,如果你想要确保一个响应不被缓存,你可以使用以下头部:

Cache-Control: no-store

如果你想要资源被缓存30分钟,可以使用:

Cache-Control: max-age=1800

Cache-Control头部可以组合多个指令,例如:

Cache-Control: public, max-age=1800

这表示响应是公开的,并且可以被缓存最多30分钟。

正确使用Cache-Control头部对于控制网页的加载时间和减少服务器负载都非常重要。它可以帮助开发者确保内容被适当地缓存,这样用户就可以快速访问网站,同时还能保证内容的新鲜度。


HTTP 常用的状态码及使用场景?

  • 1xx:表示目前是协议的中间状态,还需要后续请求
  • 2xx:表示请求成功
  • 3xx:表示重定向状态,需要重新请求
  • 4xx:表示请求报文错误
  • 5xx:服务器端错误

常用状态码:

  • 101 切换请求协议,从 HTTP 切换到 WebSocket
  • 200 请求成功,有响应体
  • 301 永久重定向:会缓存。这个资源只是暂时不能被访问了,但是之后过一段时间还是可以继续访问,一般是访问某个网站的资源需要权限时,会需要用户去登录,跳转到登录页面之后登录之后,还可以继续访问
  • 302 临时重定向:不会缓存。与301 类似,都会跳转到一个新的网站,但是 301 代表访问的地址的资源被永久移除了,以后都不应该访问这个地址,搜索引擎抓取的时候也会用新的地址替换这个老的。可以在返回的响应的 location 首部去获取到返回的地址
  • 304 协商缓存命中
  • 403 服务器禁止访问
  • 404 资源未找到
  • 400 请求错误
  • 500 服务器端错误
  • 503 服务器繁忙

计算网络分层

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层


http和https之间的区别

HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)之间的主要区别在于安全性。HTTPS是HTTP的安全版本,它在传输数据时提供了额外的安全层。以下是HTTP和HTTPS之间的关键区别:

  1. 加密:

    • HTTP: 数据以明文形式传输,没有加密,这意味着如果数据被截获,第三方可以轻易阅读这些数据。
    • HTTPS: 通过使用SSL(安全套接层)或TLS(传输层安全)协议在客户端和服务器之间建立一个加密的链接。这确保了传输的数据对第三方来说是不可读的,即使数据被截获,也无法解密。
  2. 端口:

    • HTTP: 默认使用80端口。
    • HTTPS: 默认使用443端口。
  3. URL前缀:

    • HTTP: 网址以http://开头。
    • HTTPS: 网址以https://开头,‘s’代表‘安全’。
  4. 安全证书:

    • HTTP: 不需要服务器拥有安全证书。
    • HTTPS: 需要服务器获取并安装SSL/TLS证书,以验证服务器的身份并建立安全连接。
  5. 数据完整性:

    • HTTP: 不能保证数据在传输过程中不被篡改。
    • HTTPS: 提供数据完整性验证,确保数据在传输过程中未被篡改。
  6. 搜索引擎优化(SEO):

    • HTTP: 不提供搜索引擎的安全加成。
    • HTTPS: 被搜索引擎(如Google)视为正面排名因素,可能会在搜索结果中获得更高的排名。
  7. 隐私保护:

    • HTTP: 由于缺乏加密,用户的隐私可能受到侵犯。
    • HTTPS: 加密保护了用户的隐私,防止敏感信息(如登录凭据、支付信息)被窃取。

由于这些区别,HTTPS已成为网站安全的标准,特别是对于那些处理敏感数据的网站。用户和网站所有者都被鼓励使用HTTPS来保护数据和通信的安全。


https如何实现数据的安全传输

HTTPS通过结合HTTP协议和加密协议(通常是TLS,传输层安全,或其前身SSL,安全套接层)来实现安全的信息传输。这个过程包括以下关键步骤:

  1. TLS握手:

    • 当用户的浏览器尝试与HTTPS网站建立连接时,它首先会发起一个TLS握手。
    • 在握手过程中,客户端和服务器交换协议版本信息,选择加密算法,并验证服务器的身份。
  2. 服务器身份验证:

    • 服务器必须向客户端提供其TLS证书,该证书通常由第三方可信机构(证书颁发机构,CA)签发,以验证其身份。
    • 客户端将验证证书的有效性,包括证书是否未过期,是否被可信的CA签发,以及证书中的域名是否与正在访问的网站匹配。
  3. 密钥交换:

    • 一旦服务器被验证,客户端和服务器将协商一个临时的会话密钥。
    • 使用非对称加密算法安全地交换密钥信息,确保即使被第三方截获,也无法解密会话密钥。
  4. 对称加密:

    • 一旦会话密钥被双方安全地协商出来,它将被用于对称加密后续的通信。
    • 对称加密意味着客户端和服务器都使用同一个密钥来加密和解密传输的数据,这使得数据传输过程中即使被截获也无法被未授权的第三方读取。
  5. 数据完整性:

    • TLS还提供了数据完整性检查,通常是通过消息认证码(MAC)或哈希函数实现。
    • 这确保了数据在传输过程中没有被篡改,保护了数据的完整性。
  6. 安全会话:

    • 一旦TLS握手完成,客户端和服务器之间的所有HTTP数据将被加密,创建了一个安全的会话。
    • 用户与网站的所有交互(包括浏览、表单提交、API调用等)都将通过这个加密的通道进行。

HTTPS通过这种方式确保了用户数据的保密性、服务器身份的真实性以及数据完整性,大大提升了在线交易和通信的安全性。这就是为什么现代浏览器和用户都更倾向于使用HTTPS而不是不安全的HTTP。


TCP 三次握手&四次挥手过程

image

image

转自https://www.xiaolincoding.com/network/3_tcp/tcp_interview.html#tcp-%E5%9F%BA%E6%9C%AC%E8%AE%A4%E8%AF%86

标签:缓存,HTTP,网络,复习题,响应,HTTPS,服务器,客户端
From: https://www.cnblogs.com/njfl/p/18168039

相关文章

  • 预习一 计算机网络发展史
    计算机网络的发展史可以大致划分为以下几个阶段:起源:1946年,世界上第一台计算机ENIAC在美国诞生。随后的二十多年里,计算机技术一直在寻找与通信技术相结合的发展。20世纪50年代初,美国建立了一个半自动地面防控系统,即SAGE(赛其)系统,这可以看作是网络的雏形。ARPANET阶段:1969年,美国国......
  • KVM网络管理
    一:创建nat网络模式 主要就是nat模式的话,网桥没有连接宿主机的物理网卡,就是创建出来一个网桥,会自动的虚拟出来2个接口(2个网卡的配置文件),一个是网桥的配置文件,另外一个就是nic的配置文件,主要作用就是虚拟机与宿主机进行通信用的1:命令行的操作思路主要就是,通过配置文件来进行定义......
  • 云原生周刊:K8s 中的服务和网络 | 2024.4.29
    开源项目推荐k8s-image-swapperk8s-image-swapper是Kubernetes的一个变更Webhook,它将镜像下载到自己的镜像仓库,并将镜像指向该新位置。它是dockerpull-throughproxy的一个替代方案。KubeIPv2KubeIPv2是DoiTKubeIPv1-main开源项目的全面改进版本,最初由AvivLau......
  • 双栈网络使用什么技术实现总部网络能访问分部网络?
    本文分享自天翼云开发者社区《双栈网络使用什么技术实现总部网络能访问分部网络?》,作者:SD万为了实现总部和分部之间的IPv4和IPv6互访,可以使用以下隧道技术:1、IPv4隧道技术:可以使用GRE(GenericRoutingEncapsulation)隧道技术,在IPv4网络中隧道传输IPv6数据包。在总部和分部之间分别......
  • 共常州市委网信办网络安全公开课讲师名单公示
    开个贴记录一下,以防自己记不得这个转行之前从常州市委网信办网络安全公开课资源池获得的小荣誉,感谢czdx的领导和同事们支持。明天新单位来老单位zs,意味着又到了一个人生转折点,即将踏上一个从来没有想过的职业生涯,这一走算转行也不算转行,有可能要重回搞计算机了。原文地址:https:/......
  • 社会网络分析及其Python实现
    社会网络分析(SocialNetworkAnalysis,SNA)在人类学、心理学、社会学、数学以及统计学等领域中发展起来,是综合运用图论、数学模型来研究社会行动者之间的关系或通过这些关系流动的各种有形或无形的东西,如信息、资源等,近年来逐渐成为一种热门的社会科学研究方法。社会网络分析旨在......
  • m基于Yolov2深度学习网络的智能零售柜商品识别系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       YOLO(YouOnlyLookOnce)是一种实时的目标检测算法,YOLOv2则是其改进版本,由JosephRedmon和AliFarhadi于2016年提出。YOLOv2采用了端到端的方式直接从整幅图像预测边界框和类别概率,极大......
  • Flow(网络流 written on 4.29)
    前言Classtakenon4.2Writtenon4.29Flow解决问题类网络流是用有向图每条边来模拟流动,有流量限制的情况下,求解最大流量(有时以及最小费用)的问题。同时也是将各类问题(尤其匹配问题)通过建模为网络流来用网络流算法求解的一个方法。解决问题的一般特点:数据范围不大不小,\(......
  • 计算机网络中的路由器和家里的路由器有什么区别?
    计算机网络中的路由器和家里的路由器有什么区别?集线器是什么?什么叫一个网段?一个IP地址只能给一台机器用么?一台机器只能有一个IP地址么?“这里需要注意“发送方的IP”地址不是指计算机的IP,而是指网卡对应的IP,因为IP不是分配给计算机的,而是分配给网卡的,当一个计算机有多个网卡......
  • paddlepaddle自定义网络模型及onnx模型转换与推理
    前面介绍过了使用Paddleseg套件训练后,使用export.py文件导出模型为推理部署模型。具体可以参考之前的:https://www.cnblogs.com/wancy/p/18028138本文介绍使用paddle自定义简单二分类CNN模型到训练数据集再到转换onnx模型推理。1. 数据集划分我这里将数据划分为tr......