计算机网络——HTTP/IP 协议通俗入门详解

HTTP/IP 协议通俗入门详解

    • 一、什么是 HTTP 协议?
      • 1. 基本定义
      • 2. HTTP 是怎么工作的?
    • 二、HTTP 协议的特点
    • 三、HTTPS 是什么?它和 HTTP 有啥区别?
      • 1. HTTPS 概述
      • 2. HTTP vs HTTPS
    • 四、HTTP 的通信过程
      • 步骤详解:
    • 五、常见 HTTP 请求方法
    • 六、HTTP 状态码详解
    • 七、HTTP 1.0 和 HTTP 1.1 的区别
    • 八、HTTPS 建立连接过程详解
    • 九、HTTP 会话结束的判断方式
    • 十、IP 地址 vs MAC 地址
    • 总结

一、什么是 HTTP 协议?

1. 基本定义

HTTP(HyperText Transfer Protocol)超文本传输协议,是一种基于 TCP/IP 协议应用层协议,用于客户端(浏览器)和服务端(Web服务器)之间的数据传输。

HTTP 协议让你能打开网页、下载图片、发送表单请求等。比如你打开百度首页,其实就是浏览器向服务器发起了一个 HTTP 请求,服务器返回了网页代码,你的浏览器再把这些内容显示出来。

2. HTTP 是怎么工作的?

HTTP 是基于 “请求-响应” 模型:

  • 浏览器(客户端)发送一个请求;
  • Web 服务器收到请求并返回响应;
  • 浏览器根据响应展示内容。

二、HTTP 协议的特点

特点说明
简单快速请求格式简单,处理速度快
灵活支持多种数据类型(HTML、图片、JSON等)
无连接一次请求完成后就断开连接
无状态每次请求独立,不记得你是谁(除非用 Cookie、Session)
默认端口HTTP 默认使用 80 端口,HTTPS 默认用 443 端口
基于 TCP使用可靠的 TCP 三次握手来建立连接
支持两种架构B/S(浏览器/服务器)、C/S(客户端/服务器)

三、HTTPS 是什么?它和 HTTP 有啥区别?

1. HTTPS 概述

HTTPS = HTTP + SSL/TLS加密协议
HTTPS 用于保障传输安全性,防止信息被窃取或篡改。

2. HTTP vs HTTPS

比较项HTTPHTTPS
是否加密❌ 明文传输✅ 加密传输
安全性
默认端口80443
是否需要证书是(需要 SSL 证书)
握手过程直接通信多一步 SSL 握手协商密钥
性能稍慢(需要加解密)
成本高(证书可能要钱)

四、HTTP 的通信过程

步骤详解:

  1. 建立连接
    浏览器通过 TCP 协议连接服务器,通常连接的是 80 端口。

  2. 发送请求
    浏览器发出 HTTP 请求报文(包含方法、路径、请求头等)。

  3. 服务器响应
    服务器返回 HTTP 响应报文(包含状态码、内容等)。

  4. 关闭连接
    通信完成后关闭连接(或复用连接)。

  5. 浏览器解析内容
    浏览器根据 HTML、CSS、JS 渲染最终页面。


五、常见 HTTP 请求方法

方法用途
GET获取资源
POST提交表单或数据
PUT上传新资源
DELETE删除资源
HEAD类似 GET,但不返回内容体
OPTIONS查询支持的方法

六、HTTP 状态码详解

状态码含义示例说明
200 OK成功页面正常返回
206 Partial Content成功返回部分内容用于断点续传
301 Moved Permanently永久重定向网址永久更改
302 Found临时重定向短时间跳转到其他页面
304 Not Modified内容未修改用于缓存判断
403 Forbidden无权限访问服务器拒绝请求
404 Not Found页面不存在常见的“找不到页面”
500 Internal Server Error服务器错误服务端崩了
503 Service Unavailable服务不可用一般是服务器太忙或维护中

七、HTTP 1.0 和 HTTP 1.1 的区别

项目HTTP 1.0HTTP 1.1
默认连接短连接,每次请求都断开长连接,支持 Connection: keep-alive
Host头支持不支持必须支持(支持虚拟主机)
缓存机制简单支持更多控制头字段
错误状态码增加了更多状态码如 409、410
断点续传不支持,存在浪费带宽支持(通过 Range 头实现)
管道化请求不支持支持请求流水线(Pipelining)

八、HTTPS 建立连接过程详解

  1. 用户在浏览器地址栏输入,浏览器发起 HTTPS 请求;
  2. 服务器返回 SSL 证书(含公钥);
  3. 浏览器验证证书是否合法(例如由受信任 CA 签发);
  4. 浏览器生成随机密钥,并使用公钥加密;
  5. 服务器使用私钥解密,生成对称密钥;
  6. 后续数据用这个密钥加密传输(对称加密,效率高)。
graph TDA[浏览器发起 HTTPS 请求(Client Hello)] --> B[服务器返回 SSL 证书(含公钥)]B --> C[浏览器验证证书是否合法]C -->|验证通过| D[浏览器生成随机对称密钥]D --> E[用服务器公钥加密该密钥并发送]E --> F[服务器使用私钥解密获取对称密钥]F --> G[双方拥有相同的对称密钥]G --> H[使用对称密钥进行后续数据加密传输(如登录、支付等)]

九、HTTP 会话结束的判断方式

要判断 HTTP 会话是否结束,最准确的方法是:

观察 TCP 是否进行“四次挥手”

  • 客户端和服务器之间释放 TCP 连接的标准过程;
  • 表示一个 HTTP 会话结束(如果未启用长连接)。

十、IP 地址 vs MAC 地址

项目IP 地址MAC 地址
层级网络层数据链路层
作用逻辑地址,确定“你在哪个网络”物理地址,确定“你是谁”
是否唯一可变(动态分配)全球唯一(写死在网卡)
举例192.168.1.1003C:52:82:3A:44:1F
用途路由寻址局域网通信

简单理解
IP地址像是“邮政编码+门牌号”,MAC地址像是“身份证号”。


总结

  • HTTP 是基础网络通信协议,Web 浏览器和服务器都依赖它。
  • HTTPS 是加密版 HTTP,更安全,但成本更高。
  • HTTP 协议本身简单,但通过状态码、请求头、缓存机制等可以实现强大功能

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

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

相关文章

使用 Java 实现一个简单且高效的任务调度框架

目录 一、任务调度系统概述 (一)任务调度的目标 (二)任务调度框架的关键组成 二、任务状态设计 (一)任务状态流转设计 (二)任务表设计(SQL) 三、单机任…

基于GPT 模板开发智能写作辅助应用

目录 项目说明 1. 项目背景 2. 项目目标 3. 功能需求 4. 技术选型 项目结构 详细代码实现 前端代码(client) client/src/main.js client/src/App.vue client/src/components/HistoryList.vue 后端代码(server) server/app.js server/routes/api.js server/mo…

linux 使用nginx部署next.js项目,并使用pm2守护进程

前言 本文基于:操作系统 CentOS Stream 8 使用工具:Xshell8、Xftp8 服务器基础环境: node - 请查看 linux安装node并全局可用pm2 - 请查看 linux安装pm2并全局可用nginx - 请查看 linux 使用nginx部署vue、react项目 所需服务器基础环境&…

使用huggingface_hub需要注意的事项

在安装huggingface_hub的时候要注意如果你的python是放在c盘下时记得用管理员模式命令行来安装huggingface_hub,否则安装过程会报错,之后也不会有huggingface-cli命令。 如果安装时因为没有用管理员权限安装而报错了,可以先卸载huggingface-…

Spring MVC @RequestHeader 注解怎么用?

我们来详细解释一下 Spring MVC 中的 RequestHeader 注解。 RequestHeader 注解的作用 RequestHeader 注解用于将 HTTP 请求中的**请求头(Request Headers)**的值绑定到 Controller 方法的参数上。 请求头是 HTTP 请求的一部分,包含了关于…

Rust 学习笔记:关于结构体的例题

Rust 学习笔记:关于结构体的例题 Rust 学习笔记:关于结构体的例题下面的程序能通过编译吗?下面的程序能通过编译吗?下面的程序能通过编译吗?哪种说法最能描述 Display 和 Debug 特质之间的区别?下面哪个选项…

STM32 SPI通信协议

1. SPI协议概述 1.1 什么是SPI? SPI(Serial Peripheral Interface)是由摩托罗拉公司于1980年代提出的同步串行通信协议,主要用于短距离高速芯片间通信。作为四线制全双工通信协议,它以简单的硬件实现和高效的传输速率…

92.一个简单的输入与显示示例 Maui例子 C#例子

一、关于项目命名的注意事项 在开发.NET MAUI项目时,项目命名是一个不可忽视的细节。如果你习惯了在C#控制台或WPF项目中使用中文项目名称,那么在.NET MAUI中,你可能会遇到一些问题。我之前就因为使用中文项目名称而导致项目无法直接运行&am…

Locate 3D:Meta出品自监督学习3D定位方法

标题: Locate 3D: Real-World Object Localization via Self-Supervised Learning in 3D 摘要: 我们提出了 Locate 3D,这是一种可根据指代表达(如“沙发和灯之间的小咖啡桌”)在三维场景中定位物体的模型。Locate 3…

FastAPI 与数据库交互示例

目录 安装必要的包完整代码示例运行应用使用说明API 端点说明代码解析 下面将创建一个简单的 FastAPI 应用程序,演示如何与 SQLite 数据库进行交互。这个例子包括创建、读取、更新和删除(CRUD)操作。 安装必要的包 首先,需要安装…

YOLO旋转目标检测之ONNX模型推理

YOLO旋转检测相较于目标检测而言,其只是最后的输出层网络发生了改变,一个最明显的区别便是:目标检测的检测框是xywh,而旋转检测则为xywha,其中,这个a代表angle,即旋转角度,其余的基本…

架构进阶:深入学习企业总体架构规划(Oracle 战略专家培训课件)【附全文阅读】

本文主要讨论了企业总体技术架构规划的重要性与实施建议。针对Oracle战略专家培训课件中的内容,文章强调了行业面临的挑战及现状分析、总体技术架构探讨、SOA集成解决方案讨论与问题解答等方面。文章指出,为了消除信息孤岛、强化应用系统,需要…

llamafactory-cli webui启动报错TypeError: argument of type ‘bool‘ is not iterable

一、问题 在阿里云NoteBook上启动llamafactory-cli webui报错TypeError: argument of type ‘bool’ is not iterable This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run gradio deploy from the terminal in the working directory t…

Gas 优化不足、升级机制缺陷问题

以下是针对智能合约中 Gas 优化不足 与 升级机制缺陷 的技术风险分析与解决方案: 一、Gas 优化不足 1. 核心问题 Gas 优化不足会导致合约执行成本过高,直接影响用户体验和协议可行性,尤其在交易高峰期可能引发链上拥堵或交易失败。 2. 常见风险点 冗余计算与存储操作 例如…

使用xlwings计算合并单元格的求和

有如下一个excel表 表内有合并单元格,现在需要求和,不能直接下拉填充公式怎么办? 通常的办法是先取消合并单元格,计算后,再次合并单元格,比较繁琐。 在此,尝试使用python和xlwings运行直接给出…

[创业之路-354]:农业文明到智能纪元:四次工业革命下的人类迁徙与价值重构

农业文明到智能纪元:四次工业革命下的人类迁徙与价值重构 从游牧到定居,从蒸汽轰鸣到算法洪流,人类文明的每一次跨越都伴随着生产关系的剧烈震荡。四次工业革命的浪潮不仅重塑了物质世界的生产方式,更将人类推向了身份认同与存在…

LeetCode 2302.统计得分小于 K 的子数组数目:滑动窗口(不需要前缀和)

【LetMeFly】2302.统计得分小于 K 的子数组数目:滑动窗口(不需要前缀和) 力扣题目链接:https://leetcode.cn/problems/count-subarrays-with-score-less-than-k/ 一个数组的 分数 定义为数组之和 乘以 数组的长度。 比方说&…

kafka学习笔记(四、生产者(客户端)深入研究(二)——消费者协调器与_consumer_offsets剖析)

1.消费者协调器和组协调器 如果消费者客户端中配置了多个分配策略,则多消费者的分区分配交由消费者协调器和组协调器来完成,他们之间使用一套组协调协议进行交互。 1.1.在均衡原理 将全部消费者分成多个子集,每个消费者组的子集在服务中对…

快速将FastAPI接口转为模型上下文协议(MCP)!

fastapi_mcp 是一个用于将 FastAPI 端点暴露为模型上下文协议(Model Context Protocol, MCP)工具的库,并且支持认证功能。 环境macbook,python3.13 pip install fastapi uvicorn fastapi-mcp 代码 from fastapi import FastAPI, …

实验数据的转换

最近做实验需要把x轴y轴z轴的数据处理一下,总结一下解决的方法: 源文件为两个txt文档,分别为x轴和y轴,如下: 最终需要达到的效果是如下: 就是需要把各个矩阵的数据整理好放在同一个txt文档里。 步骤① …