【Web安全】-计算机网络协议(1):IP协议详解,HTTP协议介绍



🦆 个人主页:深邃-

❄️专栏传送门:《C语言》《数据结构与算法》《Web安全》

🌟Gitee仓库:《C语言》《数据结构与算法》


目录

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地址不够用

  1. 路由器有两个完全不同的IP:内网私有IP、外网公网IP,作用范围完全分开。

  2. 所有人家的路由器,内网IP基本都一样(比如192.168.1.1)。 因为私有IP只在自己家局域网内有效,各家网络互相隔离,所以重复也不会冲突。

  3. 同一栋楼、同一个运营商宽带下,所有住户的路由器可以共用同一个公网IP。 这么做就是为了节省稀缺的公网IPv4地址。

  4. 就算大家公网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)等

用京东举例,观察请求

相关推荐
C.咖.1 小时前
Linux 基础指令详解 —— 从入门到熟练
linux·服务器·指令·linux指令
minji...1 小时前
Linux 网络基础(五)守护进程化,前后台进程组,作业,会话,setsid(),daemon(),端口号频繁更换问题
linux·运维·服务器·网络·c++·tcp/ip
剑神一笑1 小时前
Linux du 命令深度解析:从磁盘占用统计到目录空间分析
linux·运维·前端
AOwhisky1 小时前
Docker 学习笔记:从生态系统到镜像构建
linux·运维·笔记·学习·docker·容器
@insist1231 小时前
信息安全工程师-网络安全审计核心知识与考点解析
安全·软考·信息安全工程师·软件水平考试
CoderMeijun1 小时前
Linux 进程间通信:共享内存详解
linux·共享内存·进程间通信·ipc·shmget
坚持就完事了1 小时前
Ubuntu和Centos中安装软件的命令
linux·ubuntu·centos
程序猿编码1 小时前
Linux 高负载场景下 Web 服务访问日志极速定位工具实现解析(C/C++代码实现)
linux·服务器·c语言·前端·c++
CC城子1 小时前
嵌入式Linux宕机问题GDB调试(二)
linux·gdb