计算机网络HTTP全讲解,让你透彻掌握HTTP协议(三)http长短连接/代理/网关/缓存/内容协商机制/断点续传

HTTP

    • HTTP的长连接与短连接
      • 短链接
      • 长链接
    • HTTP代理
      • 代理的作用
    • HTTP网关
      • web网关
      • 常见的网关类型
    • HTTP缓存
      • HTTP缓存头部字段
      • HTTP缓存工作方式
      • 缓存改进方案
        • cdn缓存工作方式
      • 浏览器操作对http缓存的影响
    • HTTP内容协商机制
      • 客户端驱动
      • 服务器驱动
        • 请求首部集
        • 近似匹配
      • 透明协商
    • 断点续传和多线程下载
      • 断点续传过程

HTTP的长连接与短连接

能一次节约很多资源,服务很多次的这种是长连接。只能服务一次的就是短连接。

HTTP协议是基于请求/响应模式的,因此只要服务端给了响应,本次HTTP请求就结束了,那根本就没有连接。所以怎么会有http的长短连接呢?

HTTP的长连接和短链接本质上是TCP长连接和短连接。

http协议是应用层协议,在传输层使用的是tcp协议,在网络层使用ip协议。ip协议主要解决网络路由和寻址这些问题,tcp协议主要解决如何在ip层之上可靠的传递数据包,使在网络上另一端收到发端发出的所有包,并且顺序与发出顺序一致。之所以说http分为长连接和短连接本质上就是在说tcp连接。

tcp连接是一个双向的的通道,他可以保持一段时间不关闭,因此tcp连接才有真正的长连接和短连接。所以实际上http请求和http响应都是通过tcp连接这个通道来回传输的。

HTTP/1.0中,默认使用的是短链接。也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,结束就中断。

如果客户端浏览器访问某个html或者其他类型的web页中,包含有其他的web资源,比如js文件,css样式,图像等。当浏览器每遇到一个web资源时,就会建立一个http会话。

但是从HTTP/1.1起,默认使用长连接,用以保持连接特性。

使用长连接的情况下,当一个网页打开完成之后,客户端和服务器之间用于传输http数据的tcp连接不会关闭,connection:keep-alive,如果客户端再次访问这个服务器上的网页,会继续使用已经建立的连接。这样的keep-alive不会永久保持连接,它可以设定保持的时间。

短链接

建立连接——数据传输——关闭连接…建立连接——数据传输——关闭连接

长链接

建立连接——数据传输…(保持连接)…数据传输——关闭连接

HTTP代理

在这里插入图片描述

代理的作用

  • 抓包:为了能够更好的分析HTTP请求,或者达到安全测试的目的,就需要对客户端的数据包进行拦截。所以代理也叫做拦截服务器。
  • FQ:想要访问被防火墙屏蔽的服务器时,就可以通过代理服务器。
  • 匿名访问:http代理服务器通过删除http报文中的身份特性,比如客户端的ip地址,或者cookie,从而对远端的服务器隐藏原始用户的ip地址以及其他一些细节,同时代理服务器上也不会记录原始用户的log,这样就使得代理上网的阿客户可以在更加安全隐秘的环境中访问网络。
  • 过滤器:比如当我们需要禁止未成年人访问某些网页时,就需要通过代理服务器进行分析和部分请求的拦截,进一步加强对网络的控制。

HTTP网关

网关可以作为某种翻译器使用,它抽象出了一种能够到达资源的方法。网关是资源和应用程序之间的粘合剂。

网关扮演的是“协

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51790.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot投票管理系统-计算机毕业设计源码33128

摘 要 本文介绍了基于微信小程序和Spring Boot的投票管理系统的设计与实现。该系统结合了移动互联网技术和后端开发框架,旨在为各类组织或活动提供一个高效、便捷、用户友好的在线投票平台。 系统采用微信小程序作为前端展示与交互界面,用户无需下载安装…

学校如何筹办一场汉字听写大赛

汉字作为中国最宝贵的文化遗产,在五千年的历史长河里,汉字以其浩瀚广博抒写着华夏历史,以其灵秀展示着炎黄之精神。传承汉字文明是我们的使命和主责任。随着科技的发展,现在人们很少用笔书写汉字,导致汉字听写能力普遍…

unity2D游戏开发16弹弓动画

清理动画器 选中PlayerObject,打开Animator,删除原来的四个状态 右键选择Create State |from New Blend Tree; 冲命名为Walk Tree 双击Walk Tree查看Blend Tree Graph 设置属性为2D Simple Directional,再点击加号选择Add Motion Field 添加四个,如图 点击Base Layer

【数据结构】队列(链表实现 + 力扣 + 详解 + 数组实现循环队列 )

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:数据结构 📚本系列文章为个人学…

VSCode修改插件与缓存路径—究极版

一. 安装 安装的时候选中添加到资源管理器中,以便后续修改注册表。当然咱们自己手动建也是可以的 这样安装有个缺点,会在空白处、文件右键、目录右键创建通过VSCode打开。 但是在空白处打开就很不爽,所以删除注册表即可 计算机\HKEY_CLASS…

【WEB安全】 PHP基础文件知识完整教学中(超详细)

文章目录​​​​​​​ 1.PHP 文件处理 PHP 操作文件 PHP 文件打开/读取/关闭 ​​​​​​​文件的 复制 删除 重名 ​​​​​​​文件的判断 2.PHP获取文件属性 3.PHP目录操作 4.命名空间 PHP 命名空间可以解决以下两类问题: 5.正则表达式 正则表达…

机器学习 | 评估原理——准确率、精确率、召回率、F1值

Hi,大家好,我是半亩花海。接着上次的模型评估与交叉验证继续更新《白话机器学习的数学》这本书的学习笔记,在此分享准确率、精确率、召回率、F1值相关评估原理。本章的基于前几节已建立的模型进行评估知识的学习,欢迎大家交流学习…

一篇文章掌握Python爬虫的80%

转载:一篇文章掌握Python爬虫的80% Python爬虫 Python 爬虫技术在数据采集和信息获取中有着广泛的应用。本文将带你掌握Python爬虫的核心知识,帮助你迅速成为一名爬虫高手。以下内容将涵盖爬虫的基本概念、常用库、核心技术和实战案例。 一、Python 爬虫…

react中useReducer钩子函数的使用

1.代码展示 import { useReducer } from "react"// 1.定义reducer函数,根据不同action返回不同状态 function reducer(state, action) {console.log(state, action);switch (action.type) {case "INC":return state 1break;case "DEC&qu…

【算法】道格拉斯

一、引言 道格拉斯算法是一种用于曲线拟合的数学方法,特别是在处理曲线插值问题时非常有用。道格拉斯-普克算法(Douglas-Peucker Algorithm),简称D-P算法,是一种用于简化多边形或折线的高效算法,由David Do…

01 Python环境安装

1.进入官网选择合适的版本,进行下载。Welcome to Python.org,提供了支持不同操作系统的安装包,目前最新版本为Python3.12,但在学习阶段一般不推荐大家使用最新版本的软件,因为对于其他软件需要该环境时,还不…

超13万律师使用的工具,启信宝推出“司法大数据”功能

合合信息旗下的启信宝,作为行业领先的商业查询APP,依托其3亿企业及机构的实时动态数据,涵盖工商、股权、司法、知识产权等多维度信息,推出了“司法大数据”功能。 随着大数据、人工智能技术的发展,律师行业已转型为开…

python——joblib进行缓存记忆化-对计算结果缓存

问题场景 在前端多选框需要选取多个数据进行后端计算。 传入后端是多个数据包的对应路径。 这些数据包需要按一定顺序运行,通过一个Bag(path).get_start_time() 可以获得一个float时间值进行排序,但由于数据包的特性,这一操作很占用性能和时…

物联网服务器搭建及部署详细说明:掌握 Node.js、MongoDB、Socket.IO 和 JWT 的实用指南

关键知识点目录 1. 环境准备 1.1 硬件要求 1.2 软件要求 2. 搭建步骤 3. 数据处理与存储 3.1 数据存储 3.2 数据实时处理 3.2.1 安装 Socket.IO 3.2.2 修改服务器代码 4. 安全性 4.1 身份验证与授权 4.2 加密通信 4.2.1 生成自签名证书(开发环境&#…

uniapp+vue微信小程序项目中实现手机号授权登录

效果图: 实现方式: <button open-type="getPhoneNumber" class="btn-normal" @getphonenumber="getPhoneNumber">手机号授权登录</button> open-type 有效值 值说明平台差异说明getPhoneNumber获取用户手机号,可以从@getphone…

LeetCode Hot100 将有序数组转换为二叉搜索树

给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 平衡 二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#xff1a;[0,-10,5,null,-3,null,9] 也将被视为正确…

SpringBoot整合jasypt加密和解密yml配置文件

使用场景 在微服务架构中&#xff0c;配置管理是一个重要的问题。通常&#xff0c;我们会在配置文件中存放一些敏感信息&#xff0c;如数据库连接字符串、API 密钥等。这些敏感信息如果明文存储在配置文件中&#xff0c;存在较大的安全隐患。为了提高安全性&#xff0c;我们需…

Linux安装与配置

下载VMware 首先我们需要下载一个叫VMware的软件&#xff1a; 进入官方下载&#xff0c;地址&#xff1a;https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html选择与自己电脑版本适配的VMware版本【 输入许可证密钥 MC60H-DWHD5-H80U9-6V85…

Python | “IndexError: tuple index out of range” 【已解决】

Python | “IndexError: tuple index out of range” 【已解决】 IndexError: tuple index out of range 深度解析与实战指南 在Python编程中&#xff0c;IndexError: tuple index out of range是一个常见的错误&#xff0c;它发生在尝试访问元组&#xff08;或其他可索引的数…

前端canvas——贝塞尔曲线

曲线之美&#xff0c;不在于曲线本身&#xff0c;而在于用的人。 所以就有了这期贝塞尔曲线。 新规矩&#xff0c;先上个GIT。 效果图 开局一张图&#xff0c;代码全靠编。 代码 画骨 先想着怎么画一个心形吧&#xff0c;等你想好了&#xff0c;就知道怎么画了。 首先就还…