
🦆 个人主页:深邃-
目录
IP协议详解
IP 地址(Internet Protocol Address)是互联网中用于标识设备(如电脑、手机、服务器、路由器等)的唯一数字标识,相当于设备在网络中的 "门牌号码"。通过 IP 地址,网络中的设备才能互相识别并传递数据,是 TCP/IP 协议栈中最核心的基础之一。
查看IP地址
IP地址分为IPV4和IPV6 ,目前使用较多的是IPV4
1、Windows查看自己的IP地址
powershell
ipconfig

2、Linux查看自己的IP地址
bash
ifconfig

IP地址格式
IP地址由 32 位二进制 数组成,为了便于人类阅读,通常转换为点分十进制表示(4 组 0-255 的数字,用圆点分隔 )

IP地址的范围是从 0.0.0.0到 255.255.255.255 ,也就说,IPV4最大允许 43 亿台计算机连接到网络。
bash
256*256*256*256=4294967296
实际上,IP 地址并不是根据主机台数来配置的,而是以网卡。像服务器、路由器等设备都是有 2 个以上的网卡,也就是它们会有 2 个以上的 IP 地址。

结果:IP地址不够分
公网IP地址
公网 IP (Public IP Address) 是指由国际互联网地址分配机构(如 IANA)统一规划和分配,能够在全球互联网中直接被识别和访问的 IP 地址。假设你要开一个博客网站,那么你就需要去申请购买一个公有 IP,这样全世界的人才能访问,我们购买的VPS就会分配一个公网IP地址

43亿个IP地址都是公网IP,如果要分配有切只能有一个设备分配,导致的后果就是不够分,所以诞生了私网IP
私网IP地址
私网 IP (Private IP Address) 是由互联网标准机构(如 IANA)预留的、仅在本地局域网(如家庭、企业内网) 中使用的 IP 地址,不直接参与全球互联网通信。它的核心作用是解决 IPv4 地址资源不足的问题,同时保障内网设备的安全性。
平时我们办公室、家里、学校用的 IP 地址,一般都是私有 IP 地址。因为这些地址允许组织内部的 IT人员自己管理、自己分配,而且可以重复。因此,你学校的某个私有 IP 地址和我学校的可以是一样的。

同一栋楼或者同一个小区分配一个出口IP用于访问互联网,这样就节省了IP地址不够用
路由器有两个完全不同的IP:内网私有IP、外网公网IP,作用范围完全分开。
所有人家的路由器,内网IP基本都一样(比如192.168.1.1)。 因为私有IP只在自己家局域网内有效,各家网络互相隔离,所以重复也不会冲突。
同一栋楼、同一个运营商宽带下,所有住户的路由器可以共用同一个公网IP。 这么做就是为了节省稀缺的公网IPv4地址。
就算大家公网IP全都一样,外网也不会分不清: 依靠NAT技术+不同端口号,就能精准区分开每一户路由器、每一台上网设备,数据不会送错。
HTTP协议介绍
HTTP协议简介
HTTP 协议 (HyperText Transfer Protocol,超文本传输协议)是互联网中用于传输超文本(如 HTML页面、图片、视频等资源)的应用层协议,是浏览器与服务器、服务器与服务器之间通信的 "语言规范"。我们日常浏览网页、加载图片、提交表单等操作,本质上都是通过 HTTP 协议完成的
HTTP分为请求和响应

请求:是你的操作,比如访问什么地址、登录,注册等
响应:是返回结果,比如登录成功、注册成功等
HTTP协议就是具体如何请求、如何响应,把行为变成计算机能看懂的语言
URL格式
统一资源定位符(URL)是互联网上资源的唯一标识,掌握其结构是理解HTTP通信的基础。
通俗讲URL就是你的网址
完整的URL由以下部分组成(方括号表示可选部分):
html
[协议]://[用户名:密码@]主机名[:端口]/[路径]/[?查询参数][#片段标识符]
| 组成部分 | 示例 | 说明 |
|---|---|---|
| 协议(Scheme) | http://、https:// | 定义资源访问的协议类型,常见的有 HTTP、HTTPS、FTP 等 |
| 主机名(Host) | www.example.com、192.168.1.1 | 资源所在的服务器域名或 IP 地址 |
| 端口(Port) | :8080、:443 | 服务器接收请求的端口号,HTTP 默认 80,HTTPS 默认 443 |
| 路径(Path) | /api/user/profile | 资源在服务器上的具体位置,类似文件系统路径 |
| 查询参数(Query) | ?id=123&name=test | 键值对形式的参数,用于向服务器传递额外信息 |
| 片段标识符(Fragment) | #section-2 | 用于定位资源内部的特定部分(仅客户端解析) |
请求消息结构
HTTP请求 是客户端向服务器发送的消息,包含客户端的需求和相关信息,其结构遵循严格的格式规范。
基本组成
一个完整的HTTP请求由三部分构成,按顺序排列:
请求行 (Request Line):描述请求的核心信息
请求头部 (Request Headers):提供请求的元数据
请求体 (Request Body):携带请求的具体数据(可选)

完成的请求如下
css
POST /api/login HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: application/json
Content-Type: application/x-www-form-urlencoded
Content-Length: 27
username=test&password=123456
请求行
请求行 由三个部分组成,用空格分隔,具体如下

lua
请求方法 + 请求URL + HTTP版本
示例如下:
bash
GET /index.html HTTP/1.1
请求头部
由多个键值对组成,格式为键: 值,每行一个头部字段:

示例如下:
css
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml
常见头部字段说明:
| 头部字段 | 作用 | 示例 |
|---|---|---|
| Host | 指定服务器的域名和端口 | Host: blog.example.com |
| User-Agent | 描述客户端的浏览器或设备信息 | User-Agent: Chrome/98.0.4758.102 |
| Accept | 客户端可接受的响应数据类型 | Accept: application/json |
| Cookie | 客户端存储的Cookie信息 | Cookie: sessionid=abc123def456 |
请求体
用于携带请求的具体数据,常见于POST、PUT等方法:
与请求头部之间必须有一个空行分隔
数据格式由Content-Type头部指定
常见格式:表单数据(application/x-www-form-urlencoded)、JSON(application/json)等

用京东举例,观察请求


