今天翻到一篇不错的技术分享,看完之后自己也琢磨了一下,把思路梳理记录下来。
🦆 个人主页:深邃-
❄️专栏传送门:《C语言》《数据结构与算法》《Web安全》
🌟Gitee仓库:《C语言》《数据结构与算法》
目录
响应状态码 头部字段 DNS协议详解请求方法
HTTP请求方法定义了客户端对服务器资源的操作类型,不同方法有不同的语义和使用场景。
常见请求方式
HTTP标准定义了多种请求方法,按功能可分为:
方法中文名称核心功能是否有请求体安全性幂等性GET获取请求指定资源否安全是POST提交向服务器提交数据是不安全否PUT上传上传指定资源(全量更新)是不安全是DELETE删除删除指定资源否不安全是HEAD头部类似GET,但仅返回响应头部否安全是OPTIONS选项请求服务器支持的方法否安全是CONNECT建立隧道建立到目标服务器的网络隧道(通常用于HTTPS代理)否不安全否TRACE追踪回显收到的请求,用于诊断和调试否不安全是
注:这里的安全性仅从HTTP语义和规范的角度解释
GET方法介绍
最常用的方法,用于请求服务器返回指定资源:
GET /products?id=100 HTTP/1.1
Host: www.example.com
Accept: text/html
特点:
1、数据通过URL的查询参数传递(?id=100)
2、传输数据量有限制(取决于浏览器和服务器)
3、数据会显示在URL中,不适合传输敏感信息
POST方法介绍
用于向服务器提交数据,通常会导致服务器状态变化:
POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
username=test&password=123
特点:
1、数据通过请求体传递,不在URL中显示
2、可传输大量数据(无固定限制)
3、常用于表单提交、文件上传等场景
GET 与 POST 参数差异详解
GET 传的参数,是用来「告诉服务器我要请求、查询哪份数据」的筛选条件;
POST 传的参数,是「我主动提交给服务器、要发给你存起来 / 修改掉」的业务数据。
简单说:
- GET:带着条件去拿数据
- POST:带着内容去交数据
1. 传参位置不同:GET 把提交的数据直接拼接在 URL 地址后面,地址栏可见;POST 把数据放在请求体里传输,地址栏看不到。 2. 限制与能力不同:GET 受浏览器 URL 长度限制,传输数据量小,只能传简单文本;POST 没有长度限制,可以传输大量数据,还能上传文件。 3. 安全与使用场景不同:GET 参数明文暴露在地址栏、历史记录和日志中,安全性低,适合做查询、搜索这类只读请求;POST 参数相对隐蔽,安全性更好,适合登录、注册、提交表单、修改和新增数据这类写操作请求。 4. 缓存特性:GET 请求默认会被浏览器缓存,访问记录会保留历史;POST 默认不缓存,也不会留存访问历史。 5. 操作语义:GET 是幂等的,多次请求结果一样、不会改后台数据;POST 多次提交可能重复产生数据,不是幂等请求。
响应状态码
HTTP状态码详解
HTTP状态码是服务器对客户端请求的处理结果的数字标识,通过状态码可以快速判断请求的处理情况。
状态码分类
HTTP状态码由三位数字组成,首位数字定义了响应的类别,共分为五大类:
1、 1xx(信息性状态码)
表示服务器已接收请求,正在处理
示例:100 Continue(继续发送请求体)
2、2xx(成功状态码)
表示请求已被服务器成功接收、理解并处理
示例:200 OK(请求成功)
3、 3xx(重定向状态码)
表示需要客户端进一步操作才能完成请求
示例:301 Moved Permanently(资源永久迁移)
4、4xx(客户端错误状态码)
表示请求存在错误,服务器无法处理
示例:404 Not Found(资源未找到)
5、5xx(服务器错误状态码)
表示服务器在处理请求时发生了内部错误
示例:500 Internal Server Error(服务器内部错误)
常见状态码详解
状态码状态描述含义与应用场景200OK请求成功,服务器返回请求的资源,是最常见的成功状态码201Created请求已成功处理并创建了新资源(常用于POST请求创建资源)301Moved Permanently资源已永久移动到新位置,客户端应使用新URL进行后续请求302Found资源临时移动到新位置,客户端应继续使用原URL304Not Modified资源未修改,客户端可使用本地缓存的版本(用于缓存机制)400Bad Request请求语法错误或参数无效,服务器无法理解401Unauthorized请求需要身份验证,客户端未提供或验证失败403Forbidden服务器拒绝请求,客户端没有访问权限404Not Found请求的资源不存在或已被移除405Method Not Allowed请求使用的方法不被服务器支持(如用POST访问仅支持GET的接口)500Internal Server Error服务器内部发生错误,无法完成请求处理502Bad Gateway网关或代理服务器从上游服务器收到无效响应503Service Unavailable服务器暂时无法处理请求(通常是维护中)
头部字段
HTTP头部字段是请求和响应消息的重要组成部分,用于传递额外的元数据信息。本页面重点介绍四个在安全测试中常用的头部字段
User-Agent
作用:向服务器标识发送请求的客户端软件(浏览器、爬虫等)及操作系统信息
类型:请求头部
格式:
User-Agent: [软件名称]/[版本号] ([系统信息]) [其他信息]
Cookie
作用:在客户端存储少量数据,用于维持会话状态、跟踪用户等
类型:请求头部(客户端发送)和响应头部(Set-Cookie,服务器设置)
格式:
Cookie: 键1=值1; 键2=值2; ...
Set-Cookie: 键=值; 属性1=值1; 属性2=值2
Referer
作用:指示当前请求是从哪个URL跳转而来,用于跟踪请求来源
类型:请求头部
格式:
Referer: 来源页面的完整URL或路径
X-Forwarded-For
作用:记录客户端的真实IP地址,当请求经过代理服务器时使用
类型:请求头部
格式:
X-Forwarded-For: 客户端IP, 代理1IP, 代理2IP
封IP原理
1. 封IP封的是什么 平台封禁只封公网出口IP,不封电脑/手机本地的内网IP(192.168这类)。
2. 家用宽带现状 小区宽带是CGNAT共享公网IP,整栋楼、整片小区几百人共用一个公网IP;一旦被封,所有人一起躺枪,且宽带公网IP长期不换,解封很难。
3. 手机流量IP原理 手机流量也一样是多人共用一个大公网IP,并不是一人一个;只是流量IP在大IP池里轮换极快,开关飞行模式、换基站就换新出口IP,因此不容易被长期封禁、也很难大面积连带。
4. 热点的IP逻辑 手机开热点默认是NAT模式,不是桥接;所有连接热点的设备,共用手机当前的流量公网IP,一台违规全部受影响;只要手机切换飞行模式换IP,所有热点设备同步换新IP。
5. 核心本质 全世界上网靠多层NAT套娃省IPv4地址,不管宽带还是流量,都是内网IP→运营商内层IP→最终共用一个外层公网IP;封禁只看最外层公网IP,区别只在于IP能不能快速更换。
DNS协议详解
DNS协议介绍
DNS(Domain Name System,域名系统)是互联网的一项核心协议,它负责将人类可读的域名如www.xxx.com 转换为计算机可识别的 IP 地址(如 192.0.2.1)。可以把它理解为互联网的 “电话簿”。
常见记录类型
在DNS协议中,常见的记录类型如下
A:IPv4 地址记录
AAAA:IPv6 地址记录
CNAME:域名别名
MX:邮件交换记录
NS:域名服务器记录
TXT:文本记录
PTR:反向解析记录
DNS常见用处
1、当我们打开浏览器,访问一个网址时候,输入域名会自动查询对应的IP地址
2、使用系统的ping命令也会调用DNS协议
其实只要涉及到域名的地方,电脑都会自动的查询对应的DNS地址。
电脑解析域名固定顺序:先本地 hosts 查表 → 有就直接用;没有再去外网 DNS 服务器查 IP。
就写这么多吧,内容比较基础,适合入门回顾。有补充的地方欢迎留言一起完善。
评论 (0)
暂无评论