当前位置: 首页 > news >正文

【网络】HTTP 协议

目录

    • 基本概念
      • 基于 HTTP 的系统组成
      • HTTP 的基本性质
    • HTTP 请求头 & 响应头
    • HTTP 的请求方法
    • HTTP 的返回码
    • HTTP 的 Cookie
    • HTTP 缓存 Cache-Control
    • 会话
    • HTTP/1.x 的连接管理

基本概念

HTTP(Hypertext Transfer Protocol,超文本传输协议)是一个用于传输超媒体文档(例如 HTML)的应用层协议。它是为 Web 浏览器与 Web 服务器之间的通信而设计的。HTTP 遵循经典的客户端—服务端模型,客户端打开一个连接以发出请求,然后等待直到收到服务器端响应。HTTP 是无状态协议,这意味着服务器不会在两个请求之间保留任何数据(状态)。
在这里插入图片描述
在这里插入图片描述

基于 HTTP 的系统组成

在这里插入图片描述

  • 客户端:用户代理
  • Web 服务器
  • 代理(缓存、过滤、负载均衡、认证、日志)

HTTP 的基本性质

  • 简单易读
  • 可扩展
  • 会话,无状态

HTTP 请求头 & 响应头

在这里插入图片描述
在这里插入图片描述

HTTP 的请求方法

GET 方法请求一个指定资源的表示形式,使用 GET 的请求应该只被用于获取数据。
HEAD 方法请求一个与 GET 请求的响应相同的响应,但没有响应体。
POST 方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。
PUT 方法用有效载荷请求替换目标资源的所有当前表示。
DELETE 方法删除指定的资源。
CONNECT 方法建立一个到由目标资源标识的服务器的隧道。
OPTIONS 方法用于描述目标资源的通信选项。
TRACE 方法沿着到目标资源的路径执行一个消息环回测试。
PATCH 方法用于对资源应用部分修改。

HTTP 的返回码

HTTP 响应状态码用来表明特定 HTTP 请求是否成功完成。 响应被归为以下五大类:

  • 信息响应 (100–199)
  • 成功响应 (200–299)
  • 重定向消息 (300–399)
  • 客户端错误响应 (400–499)
  • 服务端错误响应 (500–599)

HTTP 的 Cookie

HTTP Cookie(也叫 Web Cookie 或浏览器 Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据。浏览器会存储 cookie 并在下次向同一服务器再发起请求时携带并发送到服务器上。通常,它用于告知服务端两个请求是否来自同一浏览器——如保持用户的登录状态。Cookie 使基于无状态的 HTTP 协议记录稳定的状态信息成为了可能。

Cookie 主要用于以下三个方面:

  • 会话状态管理:如用户登录状态、购物车、游戏分数或其他需要记录的信息
  • 个性化设置:如用户自定义设置、主题和其他设置
  • 浏览器行为跟踪:如跟踪分析用户行为等

Cookie 曾一度用于客户端数据的存储,因当时并没有其他合适的存储办法而作为唯一的存储手段,但现在推荐使用现代存储 API。由于服务器指定 Cookie 后,浏览器的每次请求都会携带 Cookie 数据,会带来额外的性能开销(尤其是在移动环境下)。新的浏览器 API 已经允许开发者直接将数据存储到本地,如使用 Web storage API(localStorage 和 sessionStorage)或 IndexedDB 。

HTTP 缓存 Cache-Control

会话

在像 HTTP 这样的客户端——服务器(Client-Server)协议中,会话分为三个阶段:

1、客户端建立一条 TCP 连接(如果传输层不是 TCP,也可以是其他适合的连接)。
2、客户端发送请求并等待应答。
3、服务器处理请求并送回应答,回应包括一个状态码和对应的数据。
从 HTTP/1.1 开始,连接在完成第三阶段后不再关闭,客户端可以再次发起新的请求。这意味着第二步和第三步可以连续进行数次。

HTTP/1.x 的连接管理

在这里插入图片描述

参考:https://developer.mozilla.org/zh-CN/docs/Web/HTTP

相关文章:

【网络】HTTP 协议

目录 基本概念基于 HTTP 的系统组成HTTP 的基本性质 HTTP 请求头 & 响应头HTTP 的请求方法HTTP 的返回码HTTP 的 CookieHTTP 缓存 Cache-Control会话HTTP/1.x 的连接管理 基本概念 HTTP(Hypertext Transfer Protocol,超文本传输协议)是一…...

git push报错 unexpected disconnect while reading sideband packet

应该是缓冲不够引起的,可以使用以下命令增加缓存: git config --global http.postBuffer 1048576000 1048576000这里的单位是Byte, 也就是1G。 亲测可以了...

JSX 语法与基础组件使用

在 React Native 中,JSX 是一种 JavaScript 的语法扩展,用于描述 UI 界面。JSX 语法类似于 HTML,但它是 JavaScript 的语法糖,可以直接在 JavaScript 代码中编写 UI 组件。本章节将介绍 JSX 语法的基础知识,以及 React…...

ReactPress:构建高效、灵活、可扩展的开源发布平台

ReactPress Github项目地址:https://github.com/fecommunity/reactpress 欢迎Star。 在当今数字化时代,内容管理系统(CMS)已成为各类网站和应用的核心组成部分。ReactPress,作为一款融合了现代Web开发多项先进技术的开…...

emulator总结

什么是硬件仿真器 做IC设计的人应该都知道软件仿真和FPGA原型验证,可以把硬件仿真器理解为这二者之间的产物,它同时具备二者的优点。 软件仿真(simulator)全面,支持UVM、assert、coverage收集、可以很方便的dump 波形…...

【Docker】‘docker‘ 不是内部或外部命令,也不是可运行的程序 或 批处理文件

在windows 电脑上安装了 Docker Desktop,在控制台输入 docker -v提示报错 ‘docker’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 报错原因是,环境变量没配置 解决办法,在系统环境变量中配置path ,重新打开cmd 或者…...

Mysql高可用架构方案

Mysql 介绍 Mysql是典型的开源关系型数据库,是许多网站、应用程序、企业软件产品的首选数据库。 Mysql特性: 易于使用,功能强大,支持事务、触发器、存储过程 管理工具多种多样且功能丰富 可以作为千万级数据管理的大型数据库 采…...

Go,15岁了[译]

请点击上方蓝字TonyBai订阅公众号! 虽然迟到了,但绝不缺席!新任Go技术负责人Austin Clements在Go语言15岁生日后的第二天,在Go官方博客上发表了庆祝文章“Go Turns 15[2]”。在这篇文章中,Austin回顾了过去一年Go项目和…...

【大数据学习 | kafka高级部分】kafka的数据同步和数据均衡

1. 数据同步 通过上图我们发现每个分区的数据都不一样,但是三个分区对外的数据却是一致的 这个时候如果第二个副本宕机了 但是如果是leader副本宕机了会发生什么呢? 2. 数据均衡 在线上程序运行的时候,有的时候因为上面副本的损坏&#xff…...

微擎框架php7.4使用phpexcel导出数据报错修复

在使用微擎社区版时,用phpexcel导出数据,提示错误,经过搜索后得知是php版本问题。 之前一直是用的5.6现在改成了7.4。所以才发现了这个问题。 然后去gitee上看了下微擎官方的代码,好像也没有对这个问题进行修复。 找了下&#…...

Netty实现WebSocket Server是否开启压缩深度分析

是否开启压缩会直接影响与客户端是否能够成功握手。 一、具体分析 通常客户端发起与Websocket连接一般是以下形式。 1)包含6个必要的Header Request Headers Sec-WebSocket-Version: 13 Sec-WebSocket-Key: Nlpc0kiHFjRom5/62lj8bA Connection: Upgrade Upgrade…...

【Xrdp联机Ubuntu20.04实用知识点补充】

简单归纳了Xrdp远程连接可能会出现的问题 文章目录 一、网络篇二、Ubuntu远程联机一段时间后莫名奇妙断开Ubuntu20.04禁用休眠配置禁用挂起配置 三、refresh界面频繁刷新四、Authentication is required to create a color profile参考文章总结 一、网络篇 ip addr show eth0接…...

【电脑】解决DiskGenius调整分区大小时报错“文件使用的簇被标记为空闲或与其它文件有交叉”

【电脑】解决DiskGenius调整分区大小时报错“文件使用的簇被标记为空闲或与其它文件有交叉” 零、报错 在使用DiskGenius对磁盘分区进行调整时,DiskGenius检查出磁盘报错,报错信息:文件使用的簇被标记为空闲或与其它文件有交叉,…...

IDC机房服务器托管的费用组成

IDC机房服务器托管的费用,并不是只有我们所想的电费而已,还有一些其它费用组成,详细来看: 1. 机位费用:   - 机位费用是根据服务器的尺寸和占用的空间来计算的。服务器通常按照U(Unit)的高度来…...

Halcon深度学习网络模型简介

HALCON为分类和语义分割提供了预训练的神经网络。当训练自定义网络时,这些神经网络是很好的起点。它们已经在一个大型图像数据集上进行了预训练。对于异常检测,HALCON提供了初始模型。 用于 3D 抓取点检测的模型 为 3D 抓取点检测提供了以下网络&#xf…...

ROM修改进阶教程------安卓14 安卓15去除app签名验证的几种操作步骤 详细图文解析

在安卓14 安卓15的固件中。如果修改了系统级别的app。那么就会触发安卓14 15的应用签名验证。要么会导致修改的固件会进不去系统,或者进入系统有bug。博文将从几方面来解析去除安卓14 15应用签名验证的几种方法。 💝💝💝通过博文了解: 1💝💝💝-----安卓14去除…...

基于集成Whisper 与 Pepper-GPT改进人机交互体验并实现顺畅通信

摘要 随着技术以令人眼花缭乱的速度发展,使人机交互更加顺畅比以往任何时候都更加重要。为了应对这一挑战,一个新领域应运而生:人机交互(HRI)。有效的人机交互被认为是实现技术效益的关键。 用户体验(UX&…...

C++设计模式精选面试题及参考答案

目录 什么是单例模式?它的应用场景是什么?如何保证单例模式线程安全? 什么是工厂方法模式?如何与简单工厂模式进行比较? 抽象工厂模式和工厂方法模式有什么区别?请给出实际应用场景。 什么是建造者模式?它和工厂模式有什么不同? 在什么情况下使用单例模式?如何在…...

Linux下的vim和gdb

vim: vim是编译功能强大,多模式的编译器。实际中vim有很多种模式,但是常用的就三种模式: 1、正常/普通/命令模式(Normal mode)控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下…...

(蓝桥杯C/C++)——搜索

一、回溯法 1.回溯法简介 回溯法一般使用 ** DFS(深度优先搜索) ** 实现,DFS是一种遍历或搜索图、树或图像等数据结构的算法,当然这个图、树未必要存储下来(隐式处理就是回溯法),常见的是通过某种关系构造出的搜索树,搜索树一般…...

Unity ECS帧同步实战:确定性模拟与Job化网络Tick

1. 这不是“又一个Unity网络教程”,而是帧同步在ECS架构下的真实落地切口很多人一看到“Unity多人对战”就下意识点开,结果发现是PhotonMonoBehaviour的旧路子:对象池、RPC调用、状态同步、插值补偿……代码越写越厚,逻辑越埋越深…...

CANN-ops-nn-昇腾NPU神经网络算子的积木盒子

你去超市买过那种混合装坚果吗?一袋里面核桃、腰果、巴旦木都有,打开直接吃,不用自己搭配。ops-nn 在昇腾CANN生态里就是这个角色——把神经网络最常用的算子打包好了,打开就能用。昇腾NPU跑大模型、跑视觉模型,底层都…...

【Android】Hypic 醒图国际版 最新版-免登录

【Android】Hypic 醒图国际版 最新版-解锁永久会员-免登录 链接:https://pan.xunlei.com/s/VOtJaC8K4sK_rrqnINu3HULdA1?pwddfdj# Hypic醒图国际版是一款功能强大的照片编辑应用程序,专为满足专业摄影师和业余爱好者的多样化需求而设计。...

CANN ops-transformer:MC2 通信融合算子怎么加速 MoE 的 All-to-All

MoE 的 Expert Parallel 需要全互连通信——每个 token 发给它路由到的专家所在的卡,再收回来。这个 All-to-All 通信在 8 卡 MoE 上能占 30% 的推理时间。MC2(Merge-Communicate-Split)把通信和计算融合在一起,在等数据的时候不闲…...

30岁之后IT人士(程序员)的职业规划是什么呢?

前段也看到ibm的寇卫东的一篇文章关于职业规划的,现在看看,这些职业规划都是理想状态下的产物,很多时候,限于我们自身水平、时间、空间的影响,很多是看着很美,其实却远远的达不到,不能仅仅说让人…...

别再手搓流程图了!用WPF从零封装一个可拖拽、可连接的业务节点控件(附完整源码)

WPF业务流程图控件开发实战:从零构建可拖拽节点系统 在当今企业级应用开发中,可视化业务流程配置已成为提升用户体验的关键要素。无论是审批流程引擎、ETL数据处理管道,还是自动化任务编排系统,都需要直观的节点连接界面。本文将深…...

Topit:终极免费macOS窗口置顶工具,让工作效率飙升300%

Topit:终极免费macOS窗口置顶工具,让工作效率飙升300% 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 你是否经常在macOS上同时处理多个…...

迷拟极速飞车——极致竞速新体验,重塑线下轻娱新标杆

随着国内文旅休闲、商业游乐行业的快速发展,消费者的线下娱乐审美与体验标准持续升级。传统游乐项目模式固化、玩法单一,同质化问题愈发突出,千篇一律的休闲设施早已无法满足全年龄段游客的多元化游玩需求。无论是城市商业综合体、城郊文旅景…...

避开Keil开发大坑:从一次CANFD驱动调试,总结C语言数组操作的5个常见陷阱

避开Keil开发大坑:从一次CANFD驱动调试,总结C语言数组操作的5个常见陷阱 调试嵌入式系统的CANFD驱动时,一个看似简单的数组越界问题让我熬了整整三个通宵。当逻辑分析仪终于捕捉到那个幽灵般的非法内存写入时,我才意识到——在Kei…...

告别手动配IP!用STM32CubeMX快速实现LwIP DHCP客户端,连接路由器即插即用

告别手动配IP!用STM32CubeMX快速实现LwIP DHCP客户端 每次为嵌入式设备配置静态IP都像在玩一场"猜谜游戏"——子网掩码输错一位、网关地址填错,整个网络就瘫痪了。更糟的是,当设备需要部署到不同网络环境时,还得重新烧…...