【笔记】【HTTP】《图解HTTP》第2章 简单的HTTP协议

news2024/12/23 17:58:47

前言

  • 有输入就要有产出,该笔记是本人看完《图解HTTP》后对每章涉及到的知识进行汇总
  • 博客将会已书的每章为一篇发布,下一篇博客发布时间不确定
  • 笔记中有些个人理解后整理的笔记,可能有所偏差,也恳请读者帮忙指出,谢谢。

免责声明

  • 本博客是本人在学习《图解 HTTP》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。
  • 为了方便,博客有些图与书中的图一致,因此没有自行截图,而是采取引用他人博客图片地址,感谢这些博主提供的图床。
  • 此笔记用于记录本人对于该知识的汇总。以方便日后的工作与学习。
  • 内容与原书不完整,请读者结合原书观看
  • 如有侵权请告知,马上删除。

第2章 简单的HTTP协议

2.1 HTTP用于客户端和服务器之间的通信

1. HTTP协议详解

  • 用于客户端服务端之间的通信

    • 客户端请求访问文本或图像等资源的一端。
    • 服务端提供资源访问的一端
  • 在两台计算机之间使用 HTTP 协议通信时, 在一条通信线路上必定有一端是客户端, 另一端则是服务器

  • 请求必定由客户端发出,而服务端回复响应

  • 无状态协议

    • 无状态:
      • 不保存状态
        • HTTP协议自身不对请求和响应之间的通信状态进行保存(即协议对发送过的请求或响应不做持久化处理。)
        • 每当有新的请求发送时,就会有对应的新响应产生。
        • 不保留之前一切请求或响应的[报文信息](# 2. 请求报文)。
      • 目的:更快地处理大量事务。
      • 优点:可减少服务器的CPU及内存资源的消耗。
  • 虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了[Cookie技术](# 2.8 使用Cookie的状态管理)。


2. 请求报文

  • 请求报文构成

    字段表示说明
    [方法](# 5. 告知服务器意图的HTTP方法)请求访问服务器的类型
    [URI](# 4. 请求URI定位资源)指明了请求访问的资源对象
    协议版本提示客户端使用的HTTP协议功能
    请求首部字段
    内容实体

3. 响应报文

  • 响应报文构成

    字段表示说明
    协议版本服务器对应的HTTP版本
    状态码请求的处理结果的状态码
    状态码的原因短语
    响应首部字段首部字段各个属性(响应日期时间)
    主体资源实体

4. 请求URI定位资源

  • HTTP协议使用URI定位互联网上的资源。
    • 【原因】URI功能之一:在互联网上任意位置的资源都能访问到。
  • 请求URI方式
    1. 完整请求URI
    2. 在首部字段Host中写明网络域名或IP地址
    3. 如果不是访问特定资源而是对服务器本身发起请求,可以用一个*来代替请求URI

5. 告知服务器意图的HTTP方法

方法名作用
GET用来请求已被URI识别的资源
POST用来传输实体的主体
PUT用来传输文件
HEAD用于确认URI的有效性及自然更新日期时间等(即获取报文首部
DELETE用来删除文件(一般不使用该方法)
OPTIONS用来查询针对请求URI指定的资源支持的方法
TRACE让Web服务器将之前的请求通信回环给客户端(不常用,容易应付XST跨站追踪攻击)
CONNECT要求在代理服务器通信是建立隧道,实现用隧道协议进行TCP通信

2.7 持久连接节省通信量

  • 【通信出现的问题】——每进行一次HTTP通信就要断开一次TCP连接

    • 在大量资源加载请求时,每次的请求都会造成无所谓的TCP连接建立和断开,增加通信量的开销

  • 【如何解决】

1. 持久连接

  • 特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。

    • 实现:建立1次TCP连接后进行多次请求和响应的交互。

  • 好处:

    1. 减少TCP 连接的重复建立和断开所造成的额外开销
    2. 减轻了服务器端的负载
    3. web页面显示速度相应提高。

2. 管线化

  • 同时并行发送多个请求,而不需要一个接一个地等待响应了

  • 比持久连接技术还要快。


2.8 使用Cookie的状态管理

  • 技术实现:通过在请求和响应报文中写入Cookie信息来控制客户端的状态。

  • 使用Cookie保存状态过程:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-19zFq838-1683595659183)(https://cache.yisu.com/upload/information/20200310/57/118906.jpg)]

    1. Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。
    2. 当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。
    3. 服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

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

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

相关文章

Java每日一练(20230509) 下一个排列、分隔链表、随机指针链表

目录 1. 下一个排列 🌟🌟 2. 分隔链表 🌟🌟 3. 复制带随机指针的链表 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日…

操作系统—— 精髓与设计原理--期末复习

一、计算机系统概述 1、基本构成 计算机有四个主要的结构化部件: ①处理器(Processor):控制计算机的操作,执行数据处理功能。当只有一个处理器时,它通常指中央处理器(CPU) ②内存…

VINS_FUSION的EVO评价

一、虚拟机和windows桌面可以复制粘贴的方法 1)sudo apt-get autoremove open-vm-tools 2)sudo apt-get insall open-vm-tools-desktop 3)reboot 二、算法精度评价工具EVO 安装参考博文: 视觉SLAM基础:算法精度评…

计算机二级java经典题目及其解析

解析: 栈的存储空间为S(1:50),初始状态为top51,表示栈的可用空间从S(1)到S(50),栈顶指针初始指向S(51)的位置,表示当前栈为空。 经过一系列正常的入栈与退栈操作后,top50,表示栈顶指针已经向下移动了一个位…

微信小程序学习实录6(百度经纬度采集、手动调整精度、H5嵌入小程序、百度地图jsAPI、实时定位、H5更新自动刷新)

百度经纬度采集 一、H5页面开发1.手机端外部JS库2.地图容器3.数据表单4.地图加载5.回调封装函数自动定位 二、微信小程序核心代码1.lnglat.wxml2.lnglat.js3.lnglat.json 三、版本发布遇见的问题 一、H5页面开发 1.手机端外部JS库 viewport,手机端的适配&#xff…

【软考数据库】第九章 非关系型数据库NOSQL

目录 9.1 概述 9.2 理论基础 9.3 分区方法 9.4 存储分布 9.5 查询模型 9.6 存储模式 前言: 笔记来自《文老师软考数据库》教材精讲,精讲视频在b站,某宝都可以找到,个人感觉通俗易懂。 9.1 概述 传统的关系数据库在应付Web …

Listener监听器,实现一个显示在线用户人数

Listener监听器,实现一个显示在线用户人数 每博一文案 关于后半身,脾气越温,福报越深。 师傅说:惜命最好的方式不是养生,而是管好自己的情绪。 坏毛病都是惯出来的,但好脾气都是磨出来的,与人生…

《小钊记》项目启动前期工作相关记录:VUE、powerdesigner建模、虚拟机密码重置、代码生成

目录 VUE镜像基本命令vue 不是内部或外部命令路径配置路由 powerdesigner 建模栏位添加注释id设置自增导出sql 虚拟机root密码重置(centos7)生成代码工具安装EasyCode插件连接数据库生成代码可以自定义模板复制现有的模板,在其基础上进行改造…

MathType7简体中文版数学公式编辑器下载安装教程

MathType一款专业的数学公式编辑器,理科生专用的必备工具,可应用于教育教学、科研机构、工程学、论文写作、期刊排版、编辑理科试卷等领域。2018年2月,MathType 7简体中文版正式发布,给用户带来全新的体验。MathType 是Windows和M…

二分查找的两种形式(C++实现)

现在有一个这样的问题需要求解 题目要求:给定一个n个元素的(升序)整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1 示例 输入: nums [-1,0,3,5,9,12] …

解密银行客户经理展业利器系列一:商机共享、创收增长

2023年银行业面临存款、贷款、利润三大变局,与此同时,商业银行的数字化转型正延展至前台建设,期望通过科技手段布局应对,数字化重装身处一线的客户经理,带动单位时间创收提升,更有力地支撑银行业务战略发展…

数字设计小思 - 谈谈复位那些事

写在前面 本系列整理数字系统设计的相关知识体系架构,为了方便后续自己查阅与求职准备。在FPGA和ASIC设计中,对于复位这个问题可以算是老生常谈了,但是也是最容易忽略的点。本文结合FPGA的相关示例,再谈一谈复位。 (本…

带着Java基础对比学习C#基本语法

文章目录 一.引包二.构造函数三.析构函数四.C#数据类型1.值类型2.引用类型分类 五.加框(boxing)和消框(unboxing)六.运算符七.控制语句八.类的继承九.方法参数的种类十. 操作符重载十一.this关键字十二.类的多态十三.抽象类和抽象方法十四.密封类和密封方法十五.接口…

Web3中文|乱花渐欲meme人眼,BRC-20总市值逼近10亿美元

现在的Web3加密市场,用“乱花渐欲meme人眼”来形容再合适不过了。 何为meme? “meme”这个词大概很多人都不知道如何正确发音,并且一看到它就会和狗狗币Dogecoin等联系在一起。那它究竟从何而来呢? Meme:[mi:m]&#x…

算法:迷宫问题

描述 定义一个二维数组 N*M ,如 5 5 数组下所示: int maze[5][5] { 0, 1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或…

JVM致命错误日志(hs_err_pid.log)分析

当jvm出现致命错误时&#xff0c;会生成一个错误文件 hs_err_pid<pid>.log&#xff0c;其中包括了导致jvm crash的重要信息&#xff0c;可以通过分析该文件定位到导致crash的根源&#xff0c;从而改善以保证系统稳定。当出现crash时&#xff0c;该文件默认会生成到工作目…

vue项目部署后提示用户有新版本

你可能在浏览器见到过上面这种UI&#xff0c;这是在vue项目重新build在服务端部署后&#xff0c;浏览器刷新页面弹出的提示&#xff0c;这时如果用户点击更新就会重载页面&#xff0c;清除之前的缓存获取最新内容。 这是怎样发生的呢&#xff1f;你可能会想到下面的方式&#x…

基于深度学习的美颜SDK技术研究报告

在美颜SDK中&#xff0c;深度学习技术的应用尤为突出。本文将从深度学习技术的角度&#xff0c;分析美颜SDK的实现原理与优化技巧。 一、在美颜SDK中的具体应用 1、人脸检测 深度学习技术可以通过训练神经网络&#xff0c;从而实现高效准确的人脸检测。 2、人脸关键点检测 …

一图看懂 dotenv 模块:从.env文件中读取键值对,并将其设置为环境变量,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 dotenv 模块&#xff1a;从.env文件中读取键值对&#xff0c;并将其设置为环境变量&#xff0c;资料整理笔记&#xff08;大全&#xff09; 摘要模块图类关系图模块全展开【…

01-数据操作+数据预处理

1.n维数组&#xff0c;也称为张量&#xff08;tensor&#xff09;&#xff1a;tensor和ndarray没有本质区别。tensor是有数学上的严格定义&#xff0c;ndarray是计算机描述的&#xff1b;张量表示一个由数值组成的数组&#xff0c;这个数组可能有多个维度&#xff1b; 无论使用…