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

计算机网络(二)应用层HTTP协议

目录

1、HTTP概念

​编辑2、工作流程​​

3、HTTP vs HTTPS​​

 4、HTTP请求特征总结​

5、持久性和非持久性连接

非持久连接(HTTP/1.0)​​

​​持久连接(HTTP/1.1)​​


1、HTTP概念

HTTP(HyperText Transfer Protocol,超文本传输协议)是用于在客户端(如浏览器)和服务器之间传输超媒体文档(如网页)的应用层协议。

特点​​:

  • ​无状态​​:每次请求独立(用Cookie/Session记录状态)。
  • ​明文传输​​(HTTP)或加密传输(HTTPS)。

2、工作流程

DNS找IP → TCP连80 → 发请求 → 收响应 → 关连接 → 渲染页面

  1. ​DNS解析​

    浏览器通过DNS服务器将域名 www.someSchool.edu 解析为IP地址。
  2. ​建立TCP连接​

    HTTP客户端(浏览器)在 ​​80端口​​ 与服务器建立TCP连接(通过套接字)。
  3. ​发送HTTP请求​

    客户端发送HTTP请求报文,包含请求的资源路径(如 /someDepartment/home.index)。
  4. ​服务器处理请求​

    服务器解析请求,从存储(内存/磁盘)中检索资源,封装为HTTP响应报文。
  5. ​返回响应并关闭连接​

    服务器通过套接字返回响应,​​等待客户端接收完成后​​ 关闭TCP连接。
  6. ​客户端渲染页面​

    客户端接收响应,解析HTML文件,加载内嵌资源(如图片、CSS),最终渲染显示给用户。

注意:人们使用的域名解析(DNS)转换为对应的IP地址,从而让计算机等网络设备能够通过IP地址找到相应的服务器或主机来进行通信交互

3、HTTP vs HTTPS​

HTTPHTTPS
​安全​明文加密
​端口​80443

 4、HTTP请求特征总结​

​​1、简单​

  • 报文格式(请求+响应):header + body
  • 头部信息:key-value 文本形式(如 Content-Type: text/html

2、​​灵活可扩展​

  • 可自定义:请求方法(GET/POST)、状态码(200/404)、头字段等。
  • 下层灵活:
    • ​HTTPS​​ = HTTP + SSL/TLS(加密)
    • ​HTTP/3​​ = HTTP + QUIC(基于UDP,更快)

3、​​跨平台​

  • 适用场景:PC浏览器、手机APP、游戏、支付等。

5、持久性和非持久性连接

非持久连接(HTTP/1.0)​
  • ​​每次请求​​需新建TCP连接(三次握手)
  • ​​响应后立即断开​​连接
  • ​​缺点​​:
    • 高延迟(频繁握手)
    • 服务器压力大(维护多个连接)
​持久连接(HTTP/1.1)​
  • ​​复用同一条TCP连接​​处理多个请求
  • ​​默认保持连接​​(除非主动关闭)
  • ​​优点​​:
    • 减少握手次数
    • 提升加载速度
    • 降低服务器负载
http://www.xdnf.cn/news/1076725.html

相关文章:

  • (LangChain)RAG系统链路向量存储之Milvus(四)
  • 【1.4 漫画PostgreSQL高级数据库及国产数据库对比】
  • 【MyBatis保姆级教程下】万字XML进阶实战:配置指南与深度解析
  • 2025年6月28和29日复习和预习(C++)
  • JVM调优实战 Day 15:云原生环境下的JVM配置
  • SQLite与MySQL:嵌入式与客户端-服务器数据库的权衡
  • sqlmap学习ing(2.[第一章 web入门]SQL注入-2(报错,时间,布尔))
  • C++ 第四阶段 STL 容器 - 第九讲:详解 std::map 与 std::unordered_map —— 关联容器的深度解析
  • 解决安装UBUNTU20.04 提示尝试将SCSI(0,0,0),第一分区(sda)设备的一个vfat文件系统挂载到/boot/efi失败...问题
  • poi java设置字体样式
  • 数据结构day4——栈
  • WPF学习笔记(18)触发器Trigger
  • Cypher 是 Neo4j 专用的查询语言
  • 归因问答-有效归因实践
  • 笔记本电脑怎样投屏到客厅的大电视?怎样避免将电脑全部画面都投出去?
  • Nginx重定向协议冲突解决方案:The plain HTTP request was sent to HTTPS port
  • Qt中使用QSettings数据或结构体到INI文件
  • 用 YOLOv8 + DeepSORT 实现目标检测、追踪与速度估算
  • 05【C++ 入门基础】内联、auto、指针空值
  • 物联网数据洪流下,TDengine 如何助 ThingLinks 实现 SaaS 平台毫秒级响应?
  • 在Linux中下载docker
  • 【SQL优化案例】索引创建不合理导致SQL消耗大量CPU资源
  • SpringBoot - 定时任务改Cron不重启,调度规则生效
  • RuoYi-Vue前后端分离版实现前后端合并
  • 用Fiddler中文版抓包工具掌控微服务架构中的接口调试:联合Postman与Charles的高效实践
  • docker desktop部署本地gitlab服务
  • 学习昇腾开发的第12天--安装第三方依赖
  • 基于springboot的养老院管理系统
  • LINUX2.6设备注册与GPIO相关的API
  • Vue3 中 Excel 导出的性能优化与实战指南