中科大 计算机网络笔记 第二章 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)
    • ‌头部字段 ‌:键值对形式,提供请求元数据(如Host、User-Agent)
    • ‌实体体‌(可选):POST请求时包含的数据体
  • ‌响应报文 ‌:
    • ‌状态行 ‌:HTTP版本 状态码 状态消息(如HTTP/1.1 200 OK)
    • ‌头部字段 ‌:键值对形式,提供响应元数据(如Server、Last-Modified、Content-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-Since或If-None-Match头部字段告知服务器资源最后修改时间或ETag。
  • ‌作用‌:服务器根据条件判断资源是否更新,如未更新则返回304 Not Modified状态码,客户端使用缓存副本。
  • ‌优点‌:解决缓存不一致性问题,减少数据传输量。
相关推荐
赛博守夜人6 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全
开开心心_Every6 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
Nuanyt7 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
networknomad7 小时前
OpenReplay:自己搭的会话回放工具,给前端排错用的
前端·其他
缓慢更新8 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能
叼烟扛炮8 小时前
Linux 学习笔记(四十一):TCP 并发演进——从单进程到多线程服务器
linux·运维·服务器·网络·笔记·学习·tcp/ip
陈随易8 小时前
AI 运维服务器,安全又可靠的方法
前端·后端·程序员
叼烟扛炮8 小时前
Linux 学习笔记(四十三):网络编程进阶——自定义协议解决 TCP 粘包与守护进程
linux·开发语言·网络·笔记·tcp/ip
风骏时光牛马9 小时前
AI稳定性治理体系构建与疑难问题深度分析
前端
songyuc9 小时前
【Manskill3】TableSceneBuilder学习笔记
pytorch·笔记·学习