计网自顶向下:网络应用层【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
若已有更新,返回报文就是最新内容。

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

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

相关文章

基于yolov2深度学习网络的火焰烟雾检测系统matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022a 3.部分核心程序 .................................................................. load yolov2.mat% 加载…

如何本地部署LightPicture结合cpolar内网穿透打造个人云图床

文章目录 1.前言2. Lightpicture网站搭建2.1. Lightpicture下载和安装2.2. Lightpicture网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 现在的手机越来越先进&#xff0c;功能也越来越多&#xff0c;而手机…

记生产OOM的故障分析

一、引言 生产上告警&#xff0c;交易堵塞&#xff0c;服务无响应&#xff0c;使用jstack、jmap、jhat命令进行故障分析。 Java虚拟机&#xff08;Java Virtual Machine&#xff0c;简称JVM&#xff09;作为Java语言的核心组件&#xff0c;为Java程序提供了运行环境和内存管理…

01背包问题:组合问题

01背包问题&#xff1a;组合问题 题目 思路 将nums数组分成left和right两组&#xff0c;分别表示相加和相减的两部分&#xff0c;则&#xff1a; left - right targetleft right sum 进而得到left为确定数如下&#xff0c;且left必须为整数&#xff0c;小数表示组合不存在&…

供应链大数据:穿越经济迷雾的指南针

随着经济形势的变幻莫测&#xff0c;企业运营面临着前所未有的挑战。在这个充满不确定性的时代&#xff0c;供应链大数据如同一盏明亮的指南针&#xff0c;为企业提供精准的方向指引。下面&#xff0c;我们将深入探讨供应链大数据如何帮助企业洞察市场趋势、优化库存管理、降低…

绝对路径拼接漏洞 [NISACTF 2022]babyupload

打开题目 最开始以为是文件上传的漏洞 结果发现无论我们上传什么文件都会显示bad filename 去网上看了大佬的wp知道 我们直接去看源代码得到提示 /source 那我们去访问一下这个路径看看 得到一个下载文件 用记事本打开得到 源代码如下 from flask import Flask, request, r…

支付流程的理解

开发指引-JSAPI支付 | 微信支付商户平台文档中心 业务流程图&#xff1a; 首先&#xff0c;从业务流程&#xff0c;当有人问你的时候&#xff0c;反问&#xff1a;公司有没有确认跟支付宝合作还是跟微信合作&#xff0c;看有没有签订协议&#xff0c;有的话&#xff0c;要确认…

数学建模【遗传算法】

一、遗传算法简介 从做菜说起&#xff0c;小魏是一名大厨&#xff0c;想要创造一道美味的菜肴。首先随机生成多个原始配方&#xff0c;每种配方所用的原料&#xff08;鸭脖、鸡肉、大肠等&#xff09;与手法&#xff08;煎炒焖炸卤炖&#xff09;组合不同&#xff0c;现实中考…

pytest教程-12-fixture作用域

领取资料&#xff0c;咨询答疑&#xff0c;请➕wei: June__Go 上一小节我们学习了pytest fixture的基本使用方法&#xff0c;本小节我们讲解一下fixture的作用域。 fixture前后置区分 控制fixture的前置和后置操作是通过yield关键字进行来区分的&#xff0c;代码在yield前面…

编曲学习:高叠和弦 挂留和弦 和弦实战应用

高叠和弦 挂留和弦 和弦实战应用小鹅通-专注内容付费的技术服务商https://app8epdhy0u9502.pc.xiaoe-tech.com/live_pc/l_65d4826fe4b04c10a1310517?course_id=course_2XLKtQnQx9GrQHac7OPmHD9tqbv 七和弦 以三和弦举例,三和弦上面叠一个三度的音,就变成了七和弦。 从下到…

halcon中的2D测量-椭圆

一、定义 二维测量指的是测量二维几何图形的参数&#xff0c;例如圆、椭圆、圆弧、矩形的相关参数。这里的参数对圆来说可以是半径&#xff1b;椭圆可以是长半轴、短半轴&#xff1b;矩形则包括宽和高。 二、基本步骤 1.创建测量模型 使用算子 create_metrology_model 2.设…

leetcode hot100 买卖股票的最佳时机二

注意&#xff0c;本题是针对股票可以进行多次交易&#xff0c;但是下次买入的时候必须保证上次买入的已经卖出才可以。 动态规划可以解决整个股票买卖系列问题。 dp数组含义&#xff1a; dp[i][0]表示第i天不持有股票的最大现金 dp[i][1]表示第i天持有股票的最大现金 递归公…