计网自顶向下:网络应用层【Web应用与HTTP协议】

目录

  • Web应用
    • Web页
    • URL
    • World Wide Web
  • 超文本传输协议——HTTP
    • 超文本
    • C/S结构
    • 报文
      • 请求报文
      • 响应报文
      • HTTP响应状态码
      • try:在命令行里手工给web服务器发送请求
    • http连接的两种类型
      • 非持久(http1.0)
      • 持久(http1.1)
        • ▷ 流水线
        • ▷ 非流水线
  • Cookie技术(rfc6265)
  • Web缓存/代理服务器技术

Web应用

Web页

Web页由许多对象组成,对象包括,HTML文件、JPEG图片、视频、Java程序、脚本、声音等。

Web页有一个基本的HTML文件,来描述这个网页的长相。这个HTML文件可以去引用其他对象

URL

对象的引用通过URL(统一资源定位器,rfc1738)

URL的格式:Scheme://host:port/path,即协议名://用户:口令@主机名/路径:端口

有一些省略的情况:

  1. 省略协议——默认http
  2. http协议省略端口号——默认80
  3. 省略用户:口令@——不登录 匿名访问

在这里插入图片描述

World Wide Web

web像蜘蛛网一样,使得找东西很难。此时,搜索引擎就提供了帮助。搜索引擎根据关键字、热度来推送。这种应用被称为World Wide Web,全世界范围内的网页。

网页网页之间的链接组成。

World Wide Web使得用户只要下载浏览器就可以访问世界上任何一个网站。

超文本传输协议——HTTP

超文本

即不是普通的线性文本,而是对象与对象相互指向

C/S结构

客户端(浏览器)请求对象 (例 ie、360)
服务器:发送对象 (例 RIS、阿帕奇)

大概过程:浏览器现请求到html文件,解释,将网页画个大概其,然后对每个url再进行请求(可能是不同的主机)—— 请求-响应模式。拉取式。

思考:为什么不同厂商生产的浏览器/服务器之间能相互通信?因为遵守相同的协议。

http协议是无状态协议(不记忆客户端过去的请求,为了降低代价,更简便)

依赖TCP协议,可靠传输,端口80。
waiting socket 和connecting socket

报文

请求报文和响应报文。

请求和响应都以ASCII码表示,即人可读。

请求报文

(请求行)命令 空格 url 空格 版本号
首部行名称 值
首部行名称 值
首部行名称 值

实体行(GET请求没有实体行)

在这里插入图片描述

提交表单输入的两个方式:post 实体,get url+参数
url+参数

响应报文

在这里插入图片描述
首部行中的Last-Modified在Web缓存中有用处。

HTTP响应状态码

200 OK 请求成功,请求对象包含在响应报文的后续部分
301 Moved Permanently 请求的对象已经被永久转移了;新的URL在响应报文的Location:首部行中指定 ;客户端软件自动用新的URL去获取对象
400 Bad Request 一个通用的差错代码,表示该请求不能被服务器解读
404 Not Found 请求的文档在该服务上没有找到
505 HTTP Version Not Supported

try:在命令行里手工给web服务器发送请求

在这里插入图片描述

http连接的两种类型

非持久性连接(http1.0)和持久性连接(http1.1)。

非持久(http1.0)

常用命令:get post head(要求服务器在响应报文中不包含请求对象 , 故障跟踪,建立索引)

tcp连接请求-连接确认(一个RTT)
http请求报文-http响应报文(一个RTT+传输时间)
连接拆除-连接拆除确认

下图——响应时间模型
RTT(round-trip time):往返时间
在这里插入图片描述
非持久的响应时间是2RTT+传输时间。

持久(http1.1)

http1.1常用命令比1.0多了put和delete

在连接之上可以传多个对象

tcp连接请求-连接确认
http请求报文-http响应报文
http请求报文-http响应报文(可多个)
……
连接拆除-连接拆除确认
▷ 流水线

请求 请求 请求 回来 回来 回来……

▷ 非流水线

依次请求-回来-请求-回来……

Cookie技术(rfc6265)

回顾:http协议是无状态协议(不记忆客户端过去的请求,为了降低代价,更简便)

但是购物车、偏好推荐机制怎么去实现呢?此时就用到了cookie技术。这是功能性的技术。(与web缓存是性能优化对比)
消息是可扩展的。

组成部分:
在这里插入图片描述
客户端与服务器之间的通信过程:
在这里插入图片描述

Web缓存/代理服务器技术

这个技术是为了性能优化。

它的功能是:在不访问服务器的前提下,满足客户端的请求。在局域网之中建立一个缓存(既是客户端也是服务器),这样有些人请求缓存之中的内容,就不需要访问远端服务器了,这是一种加速手段。

这样做还有一点不足之处:如果远端服务器更新了,而缓存还是旧内容,客户端访问缓存不就得不到最新内容了吗?

http协议给出的解决办法是——条件GET

即每次客户端请求到缓存时,缓存都向远端服务器发送一个报文,跟普通的请求报文相比,多了一行:If-modified-since: <date>,服务器看到了这一行,会把其中的date和自己的更新时间作比较

若尚未更新,那么返回报文只有头部,内容是304 Not Modified
若已有更新,返回报文就是最新内容。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【自然语言处理三-自注意self attention】

自然语言处理三-自注意力 self attention 自注意力是什么&#xff1f;自注意力模型出现的原因是什么&#xff1f;词性标注问题解决方法1-扩展window&#xff0c;引用上下文解决方法2-运用seq2seq架构新问题来了&#xff1a;参数量增加、无法并行的顽疾 自注意力self attention模…

C++ list详解以及模拟实现

目录 1.list的使用 1.1list的定义 1.2list的使用 1.3list iterator使用 1.4list capacity 1.5list element access 1.6list增删查改 2.list迭代器失效问题 3.list的模拟实现 1.list的使用 1.1list的定义 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容…

水印相机小程序源码

水印相机前端源码&#xff0c;本程序无需后端&#xff0c;前端直接导入即可&#xff0c;没有添加流量主功能&#xff0c;大家开通后自行添加 源码搜索&#xff1a;源码软件库 注意小程序后台的隐私权限设置&#xff0c;前端需要授权才可使用 真实时间地址拍照记录&#xff0c…

alembic

alembic是sqlalchemy的作者开发的。 用来做OMR模型与数据库的迁移与映射。 第一个&#xff0c;alembic的所有命令都是以alembic开头 第二&#xff0c;alembic的迁移文件也是通过版本进行控制的。首先&#xff0c;通过pip install alembic进行安装。以下将解释alembic的用法 方…

从管易云·奇门到金蝶云星空通过接口配置打通数据

从管易云奇门到金蝶云星空通过接口配置打通数据 对接源平台:管易云奇门 管易云是金蝶旗下专注提供电商企业管理软件服务的子品牌&#xff0c;先后开发了C-ERP、EC-OMS、EC-WMS、E店管家、BBC、B2B、B2C商城网站建设等产品和服务&#xff0c;涵盖电商业务全流程。 目标系统:金蝶…

ZYNQ:串口-CAN协议转换

前言 目前已经实现zynq的PS-CAN和PL-CAN功能。串口-CAN协议转换是实现以太网-CAN功能的过渡&#xff0c;通过这个流程能够减少后期以太网工程出现问题的频率。阶段性功能目标如下&#xff1a; 实现数据在CAN调试助手和串口调试助手之间的来回转换&#xff0c;从而了解中断机制…

Vue前端对请假模块——请假开始时间和请假结束时间的校验处理

开发背景&#xff1a;Vueelement组件开发 业务需求&#xff1a;用户提交请假申请单&#xff0c;请假申请的业务逻辑处理 实现&#xff1a;用户选择开始时间需要大于本地时间&#xff0c;不得大于请假结束时间&#xff0c;请假时长根据每日工作时间实现累加计算 页面布局 在前…

【Excel PDF 系列】EasyExcel + iText 库

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 前言转换前后效果引入 pom 配置代码实现定义 ExcelDataVo 对象主方法EasyExcel 监听器 前言 最近遇到生成 …

SQL进阶(三):Join 小技巧:提升数据的处理速度

复杂数据结构处理&#xff1a;Join 小技巧&#xff1a;提升数据的处理速度 本文是在原本sql闯关的基础上总结得来&#xff0c;加入了自己的理解以及疑问解答&#xff08;by GPT4&#xff09; 原活动链接 用到的数据&#xff1a;链接 提取码&#xff1a;l03e 目录 1. 课前小问…

动态规划之第 N 个泰波那契数/三步问题【leetCode】【算法】

动态规划动态规划之第 N 个泰波那契数/三步问题 动态规划LeetCode题目第 N 个泰波那契数求解1求解2&#xff08;滚动数组&#xff09; 三步问题求解1求解2&#xff08;滚动数组&#xff09; 动态规划 如果问题是由重叠的子问题构成的&#xff0c;那就可以用动态规划&#xff08…

JSON简介以及如何在Python中使用JSON

什么是JSON&#xff1f; JSON是"JavaScript Object Notation"的简称&#xff0c;是一种数据交换格式 JSON格式 假设我们有一个对象&#xff0c;这个对象有两个属性&#xff1a;“name”跟“age”。 在JSON中是这样表达的&#xff1a; { "name":"男孩…

【 C++ 】闭散列哈希表的模拟实现

哈希节点状态 我们都很清楚数组里的每一个值无非三种状态&#xff1a; 如果某下标没有值&#xff0c;则代表空EMPTY。如果有值在代表存在EXIST。如果此位置的值被删掉了&#xff0c;则表示为DELETE。 而这三种状态我们可以借助enum枚举来帮助我们表示数组里每个位置的状态。…

RK3568平台开发系列讲解(基础篇)如何快速学习一套 Linux开发板源码

🚀返回专栏总目录 文章目录 一、基础代码二、驱动代码沉淀、分享、成长,让自己和他人都能有所收获!😄 拿到一份源码和一块评估板,如何快速找到与这块板相关的源码,是很多研发人员都曾遇到过的问题。如果对内核源码结构有大概了解,要完成这些事情也不难,通常可按照基础…

ASLR 和 PIE

前言 ASLR&#xff08;Address Space Layout Randomization&#xff0c;地址空间随机化&#xff09;是一种内存攻击缓解技术&#xff0c;是一种操作系统用来抵御缓冲区溢出攻击的内存保护机制。这种技术使得系统上运行的进程的内存地址无法被预测&#xff0c;使得与这些进程有…

高性能 Kafka 及常见面试题

Kafka 是一种分布式的&#xff0c;基于发布/订阅的消息系统&#xff0c;原本开发自 LinkedIn&#xff0c;用作 LinkedIn 的事件流&#xff08;Event Stream&#xff09;和运营数据处理管道&#xff08;Pipeline&#xff09;的基础。 基础原理详解可见 Kafka 基本架构及原理 基础…

事件循环解析

浏览器的进程模型 何为进程&#xff1f; 程序运行需要有它自己专属的内存空间&#xff0c;可以把这块内存空间简单的理解为进程 每个应用至少有一个进程&#xff0c;进程之间相互独立&#xff0c;即使要通信&#xff0c;也需要双方同意。 何为线程&#xff1f; 有了进程后&…

Java根据excel模版导出Excel(easyexcel、poi)——含项目测试例子拿来即用

Java根据excel模版导出Excel&#xff08;easyexcel、poi&#xff09;——含项目测试例子拿来即用 1. 前言1.1 关于Excel的一般导出2.2 关于easyexcel的根据模版导出 2. 先看效果2.1 模版2.2 效果 3. 代码实现&#xff08;核心代码&#xff09;3.1 项目代码结构3.2 静态填充例子…

全域增长方法论:帮助品牌实现科学经营,助力长效生意增长

前两年由于疫情反复、供给需求收缩等条件制约&#xff0c;品牌业务均受到不同程度的影响。以双十一和618电商大促为例&#xff0c;就相比往年颇显“惨淡”&#xff0c;大多品牌营销都无法达到理想预期。 随着市场环境不断开放&#xff0c;2023年营销行业开始从低迷期走上了高速…

RPA中国 x UiPath | 第六届RPA极客挑战赛,3月16日上海开赛!

随着人工智能技术的不断进步以及数字化转型的深入&#xff0c;企业对于高效、精准、自动化的业务流程需求日益迫切。RPA技术作为连接人类工作与机器操作的桥梁&#xff0c;正逐渐从规则驱动发展为智能决策的助手。 由RPA中国联合UiPath共同主办的【第六届RPA极客挑战赛】将于2…

高性能API云原生网关 APISIX安装与配置指南

Apache APISIX是Apache软件基金会下的顶级项目&#xff0c;由API7.ai开发并捐赠。它是一个高性能的云原生API网关&#xff0c;具有动态、实时等特点。 APISIX网关可作为所有业务的流量入口&#xff0c;为用户提供了丰富的功能&#xff0c;包括动态路由、动态上游、动态证书、A…