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

中科大 计算机网络笔记 第二章 2.3WEB和HTTP笔记(更新中)

Web应用与HTTP协议笔记

一、Web应用基础

1. Web对象与URL

  • 对象‌:互联网中的网页、图片等资源均可视为对象。
  • URL(统一资源定位符)‌:用于唯一标识并访问互联网中的对象。
    • 格式:协议://用户名:密码@主机名:端口号/路径名?查询参数#片段标识符
    • 示例:http://www.ustc.edu.cn/

2. Web页面结构

  • base HTML文件‌:定义网页的基本框架。
  • 链接(Links)‌:网页中嵌入的对象链接,通过URL指向其他资源。
  • 浏览器解析‌:浏览器下载base HTML文件后,解析并展示网页内容,同时根据链接加载其他资源(如图片)。

二、HTTP协议详解

1. HTTP协议概述

  • 超文本传输协议‌:支持Web应用的核心协议。
  • 客户端与服务器‌:浏览器作为客户端,Web服务器提供资源。
  • 版本‌:HTTP/1.0、HTTP/1.1等,主要区别在于连接管理和性能优化。

2. 连接管理

  • 非持久连接(HTTP/1.0)‌:每个请求/响应对建立一个新连接,完成后立即关闭。
  • 持久连接(HTTP/1.1)‌:连接建立后保持打开状态,可复用于多个请求/响应对,提高效率。
    • 流水线(Pipelining)‌:在持久连接上连续发送多个请求,无需等待响应即可发送下一个请求。

3. 报文格式

  • 请求报文‌:
    • 命令行‌:方法 URL HTTP版本(如GET / HTTP/1.1
    • 头部字段‌:键值对形式,提供请求元数据(如HostUser-Agent
    • 实体体‌(可选):POST请求时包含的数据体
  • 响应报文‌:
    • 状态行‌:HTTP版本 状态码 状态消息(如HTTP/1.1 200 OK
    • 头部字段‌:键值对形式,提供响应元数据(如ServerLast-ModifiedContent-Length
    • 实体体‌:请求的资源内容

4. 请求方法

  • GET‌:请求资源,可带查询参数。
  • POST‌:提交数据给服务器,常用于表单提交。
  • HEAD‌:与GET类似,但仅返回响应头部,不返回实体体。
  • PUT‌、‌DELETE‌:分别用于上传和删除资源,常用于WebDAV和RESTful API。

三、HTTP无状态特性与Cooki

e

1. 无状态协议

  • 定义‌:服务器不维护客户端的状态,每次请求独立处理。
  • 优点‌:简单、高效,支持高并发。
  • 缺点‌:无法处理需要状态的应用(如购物车)。

2. Cookie机制

  • 定义‌:服务器在响应报文中通过Set-Cookie头部字段设置Cookie,客户端在后续请求中通过Cookie头部字段携带Cookie。
  • 作用‌:实现客户端状态跟踪,支持个性化设置、购物车等功能。
  • 隐私问题‌:Cookie可能泄露用户隐私,需谨慎使用。

四、Web缓存

1. 缓存机制

  • 定义‌:在客户端或代理服务器中存储已访问过的资源副本,以减少对原始服务器的访问次数。
  • 优点‌:提高响应速度、减轻服务器和网络负担。
  • 缺点‌:可能导致资源不一致性问题(如缓存未及时更新)。

2. 条件式获取(Conditional GET)

  • 定义‌:客户端在请求时通过If-Modified-SinceIf-None-Match头部字段告知服务器资源最后修改时间或ETag。
  • 作用‌:服务器根据条件判断资源是否更新,如未更新则返回304 Not Modified状态码,客户端使用缓存副本。
  • 优点‌:解决缓存不一致性问题,减少数据传输量。

相关文章:

  • OpenAI 最后一代非推理模型:OpenAI 发布 GPT-4.5预览版
  • 泵吸式激光可燃气体监测仪:快速精准守护燃气管网安全
  • 驱动开发系列41 - Linux 显卡驱动KMD代码分析(二) - 设备电源管理
  • 我代表中国受邀在亚马逊云科技全球云计算大会re:Invent中技术演讲
  • 【Unity】Unity性能分析解决方案——UPR
  • Ubuntu 安装 stable-diffusion-webui-docker 常见问题处理方法
  • chrome下载文件提示“贵组织屏蔽了该文件,因为它不符合安全政策” 安装chrome插件出现问题
  • el-select的下拉选择框插入el-checkbox
  • 2025年装修装饰施工员考试题型及题目分享
  • 端到端自动驾驶——cnn网络搭建
  • Docker安装Postgres_16数据库
  • L1-031 到底是不是太胖了
  • Redis是什么?如何使用Redis进行缓存操作?
  • 【鸿蒙 NEXT】HarmonyOS 容器
  • CSK linux内网靶场
  • Day33 第八章 贪心算法 part06
  • Spring Boot的启动流程
  • 【软考-架构】2.1、操作系统概述-进程管理-同步互斥
  • gradle libs.versions.toml文件
  • 【NLP 30、文本匹配任务 —— 传统机器学习算法】
  • 四川资阳市原市长王善平被双开,“笃信风水,大搞迷信活动”
  • 山寨“小米”智能马桶、花洒销售额过亿,被判赔3500万元
  • 《2025城市青年旅行消费报告》发布,解码青年出行特征
  • 体坛联播|双杀阿森纳,巴黎晋级欧冠决赛对阵国际米兰
  • 王耀庆化身“罗朱”说书人,一人挑战15个角色
  • 又一日军“慰安妇”制度受害者去世,大陆登记在册幸存者仅剩7人