计网必会:HTPP详解(非常全面)、cookie、缓存

news2024/9/24 23:26:34

文章目录

  • 应用层协议
  • Web和HTTP
    • HTTP 概述
      • 采用非持续连接的HTTP
        • RTT 往返时间的定义
        • **三次握手过程**
      • 采用持续连接的HTTP
      • HTTP到底采用哪个?
    • HTTP 的报文格式
      • 请求报文
        • 功效
      • 格式
      • 响应报文
        • 状态码
        • 格式
    • Cookie
      • 什么是cookie
    • Web缓存

在学习的过程很多人都遇到了HTTP和Cookie,Web缓存这些问题。下面我将带领大家了解一下这些复杂的东西,鼓励一下点个赞呗

应用层协议

上一篇博客应用层体系结构已经介绍了应用层的大致内容,下面就是要介绍应用层的协议

  1. HTTP协议

  2. SMTP协议


Web和HTTP

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

HTTP 概述

超文本传输协议(核心)。
Web服务器实现了HTTP的服务器端,它用于存储Web对象
HTTP定义了Web客户向Web服务器请求Web页面的方式,以及服务器向客户传送Web页面的方式。
HTTP使用TCP作为支撑协议,HTTP客户需要建立起与服务器的TCP连接,如何通过套接字访问TCP。
不管是客户端还是服务器,都是需要先向他们的套接字接口发送或接收报文。
重点
HTTP的服务器地址是稳定的
3. 客户与服务器的交互是通过TCP进行的
4. 每个请求都是经过一个单独的TCP发送,也能是多个请求经过一个!!!

采用非持续连接的HTTP

1.客户需要获取1+1=?客户发起一个TCP连接
2. 客户经过套接字发送一个HTTP请求报文
3. 服务器接收请求报文,发送响应
4. TCP连接断开
5. 客户检查响应报文中的页面信息,得到 2.

RTT 往返时间的定义

RTT是指从源主机发送分组开始,直到源主机收到来自目的主机的确认分组为止,所需要的时间

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

RTT由三个部分决定:链路的传播时间、末端系统的处理时间、路由器的缓存中的排队和处理时间。其中前两个部分的值作为一个TCP连接相对固定,路由器的缓存中的排队和处理时间会随着整个网络拥塞程度的变化而变化。所以RTT的变化在一定程度上反映了网络拥塞程度的变化。简单来说就是发送方从发送数据开始,到收到来自接受方的确认信息所经历的时间。

三次握手过程

  1. 客户与服务器发起一个TCP连接,
  2. 服务器对此做出回应。
  3. 客户再向服务器回应一个确认,这也就是三次握手的由来!

采用持续连接的HTTP

是不是觉得非持续连接一定比持续性连接好?那你就大错特错的
非持续连接的服务器和客户机需要分配的大量的网络资源,假设你需要99999TB的资源,还需要给你的网友分享,等个几年估计就传完了,那么服务器估计直接就给你停了

如果我们采用持续性连接,那么服务器在结束第一轮的请求响应后,会保持TCP连接的打开!

HTTP到底采用哪个?

看实际情况而定,在实际应用中很多情况突发,不能盖棺定论

HTTP 的报文格式

我只说原理,喜欢看结构的,市面上任何书都有例子,光看例子不知道原理,没啥用

请添加图片描述

请求报文

  1. 第一行是请求行:GET/POST/请求…+URL+HTTP版本字段
  2. 其他行是首部行:指明了主机是啥,要不要关闭连接,等等客观存在的网络信息

功效

首部行表示了用户想要的需求(语言,资源版本等)

格式

请求报文的格式

响应报文

响应报文

  1. 状态行:协议字段+状态码+对象本身状态信息
  2. 首部行:类似于发送报文,都是功能
  3. 正文:主要部分,包含所有的对象本身

状态码

200 请求成功
301 对象转移
400 差错代码
404 请求对象丢失
505 服务器不支持请求报文使用的HTTP协议版本

格式

响应报文

Cookie

什么是cookie

为了让Web站点能够识别用户,诞生了cookie

cookie可以用于标记一个用户,用户首次访问一个网站后,需要产生一个唯一的用户标记,在用户下一次访问时,浏览器向服务器发送cookie首部,服务器就标识出了用户,因此,cookie在HTTP之上建立一个用户会话。

Web缓存

代表初始web服务器满足HTTP请求的网络实体。Web缓存器以及有自己的磁盘存储空间,并在存储空间保存最近访问的资源副本

请求对象过程

  • 建立TCP连接,向缓存器发送HTTP请求
  • 检查缓存器,如果有副本资源就直接返回资源给客户
  • 如果没有,就访问需要访问的资源,然后在本地拷贝一下副本。

好处
减少响应时间,减低成本费用

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

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

相关文章

卓有成效的五种用例设计方法

持续坚持原创输出,点击蓝字关注我吧用例设计作为测试工程师的立身之本,是衡量测试工程师综合素质的重要参考,时间是测试工作中重要的测试资源,通过设计高质量的测试用例可以有效地提升测试效率。本文旨在介绍测试工作中常用的五种…

SSO笔记

自己学习做的笔记.没有具体代码 单点登录:多系统,单一位置登录,实现多系统同时登录的一种技术. 也就是说多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 和三方登录Oauth2是有区别的.Oauth2属于三方登录.通常是某系统,使用其他系统的用户,…

【机器学习】多分类及多标签分类算法(含源代码)

目录:多分类及多标签分类算法一、单标签二分类问题1.1 单标签二分类算法原理二、单标签多分类问题2.1 ovo2.1.1 手写代码2.1.2 调用API2.2 ovr2.2.1 手写代码2.2.2 调用API2.3 OvO和OvR的区别2.4 Error Correcting三、多标签算法问题3.1 Problem Transformation Met…

Vue3 – Composition API(二)

1、computed函数使用 1.1、computed 在前面我们讲解过计算属性computed:当我们的某些属性是依赖其他状态时,我们可以使用计算属性来处理 在前面的Options API中,我们是使用computed选项来完成的;在Composition API中&#xff0c…

Shell语法

一、概念 Shell 是命令行与操作系统沟通的桥梁,也是一门语言。 Shell 脚本可以直接在命令行中执行,也可以作为文件方便复用。 Linux中常见的 Shell 脚本有: Bourne Shell(/usr/bin/sh或/bin/sh)Bourne Again Shell(/bin/bash)C Shell(/us…

《啊哈算法第四章之bfs》(17张图解)

源自《啊哈算法》 目录 bfs正文 题目 思路 完整代码1 完整代码2 再解炸弹人 题目 思路 完整代码1 完整代码2 总结 bfs正文 第四章--深度优先搜索中,我们用dfs找到了寻找小哈的最短路径 接下来,我们要用bfs(Breadth First Sear…

04 |「链表」简析

前言 前言:研究一个数据结构的时候,首先讲的是增删改查。 文章目录前言一、链表简介1. 含义2. 节点组成3. 存储方式1)数据在内存中的存储方式2)单链表在内存中的存储方式3)双链表在内存中的存储方式4)循环链…

python-38-降低内存开销的python迭代器

【进阶Python】第五讲:迭代器与生成器 python 迭代器和生成器 迭代是Python中常用且非常强大的一个功能,它可以用于访问集合、列表、字符串、字典等数据结构的元素。 我们经常使用循环和条件语句,我们也清楚哪些是可以迭代访问,但…

结构型模式-代理模式

1.概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 Java中的代理按照代理类生成时机不同又分为静态代理和动态代理。静态代理代理类在编译…

Nacos 配置中心源码讲解

目录 1. 配置中心的优点 2. 配置模型结构 3. 配置中心 Server 端实现原理 3.1 新建配置 / 发布配置 3.2 查询配置 4. 配置中心 Client 端实现原理 4.1 发布配置 4.2 查询配置 4.3 监听机制 Listener 1. 配置中心的优点 运行时动态修改系统参数配置,不用重启…

排序算法解析:快排,归并 (全)

一、快排原始快排 算法思想:ps:排序的效果其实就是使一个数列中的每个数都满足左边数比它小、右边数比它大(假设升序)。接下来我们来了解快排:多次递归遍历,每单次遍历,设定一个限定值&#xff…

02 |「数据结构、逻辑结构、物理结构」基本概念简析

前言 前言:简析数据结构、逻辑结构、物理结构。 文章目录前言一、数据结构1. 简介2. 数据3. 结构4. 分析5. 分类1)线性结构(线性表)2)树结构3)图结构二、逻辑结构与物理结构1. 为什么要有逻辑结构和物理结构…

SpringBoot+Vue--前端搭建-笔记1

前端搭建 首先安装node.js(百度) 官网下载地址:http://nodejs.cn/download 以前写的关于npm 后端了解的npm_biubiubiu0706的博客-CSDN博客 安装Node.js淘宝镜像加速器(cnpm) npm install cnpm -g(可以不安装) #建议使用如下语句解决npm速度慢的问题 好比设置仓…

代码随想录算法训练营三期 day 24 - 回溯 (1) (补)

回溯算法理论基础 什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。 回溯法的效率 回溯的本质是穷举&…

【手把手教你学51单片机】中断的优先级

注:本文章转载自《手把手教你学习51单片机》!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小伙…

第四十三章 动态规划——最长单调序列模型

第四十三章 动态规划——最长单调序列模型一、最长单调序列模型1、模型母题2、思路分析(两种方法:DP,贪心)二、模型的应用1、AcWing 1017. 怪盗基德的滑翔翼(1)问题(2)分析&#xff…

C规范编辑笔记(十四)

往期文章: C规范编辑笔记(一) C规范编辑笔记(二) C规范编辑笔记(三) C规范编辑笔记(四) C规范编辑笔记(五) C规范编辑笔记(六) C规范编辑笔记(七) C规范编辑笔记(八) C规范编辑笔记(九) C规则编辑笔记(十) C规范编辑笔记(十一) C规范编辑笔记(十二) C规范编辑笔记(…

Linux进程学习【一】

✨个人主页: Yohifo 🎉所属专栏: Linux学习之旅 🎊每篇一句: 图片来源 🎃操作环境: CentOS 7.6 阿里云远程服务器 Perseverance is not a long race; it is many short races one after another…

Linux基本功系列之rename命令实战

文章目录一. rename 命令介绍二. 语法格式及常用选项三. 参考案例3.1 将当前目录下所有.cfg的文件,替换为.txt结尾3.2 将所有出现mufeng的部分都替换为mufeng13.3 将mufeng0开头都变成mufeng00开头3.4 rename支持正则表示式总结前言🚀🚀&…

2023-1-22 刷题情况

积水面积 先祝大家新年快乐,新的一年,万事如意。 题目描述 一组正整数,分别表示由正方体叠起的柱子的高度。若某高度值为 xxx,表示由 xxx 个正立方的方块叠起(如下图,0≤x≤50000 \le x \le 50000≤x≤5…