HTTP知识点

1. HTTP 基础

  • HTTP:应用层协议,无状态。服务器不记住上一次是谁访问。
  • 请求报文结构:请求行 + 请求头 + 空行 + body
  • 响应报文结构:状态行 + 响应头 + 空行 + body

2. 常用状态码

  • 200 OK:请求成功
  • 301:永久重定向,浏览器缓存跳转规则
  • 302:临时重定向,不缓存,每次请求都询问服务器
  • 304:资源没有修改,客户端直接用本地缓存
  • 401:未认证(未登录,缺少凭证)
  • 403:认证成功,但无权限访问,禁止访问
  • 404:资源不存在
  • 500:服务端代码异常
  • 502:网关错误,Nginx 连不上后端服务
  • 503:服务过载 / 正在维护,拒绝处理请求
  • 504:网关超时,后端处理太久没返回

3. HTTP 请求方法(REST)

  • GET:查询资源,参数放 URL,只读,可缓存
  • POST:新建资源,数据放 body
  • PUT:全量更新资源,整体覆盖
  • DELETE:删除资源
  • Cookie:浏览器端存储 ,每次请求自动带上。由服务器Set-Cookie响应头下发。一般存 sessionid。
  • Session:服务器端存储,保存用户登录信息。
  • 逻辑:登录成功,服务器生成 sessionid,通过 Set-Cookie 给到浏览器;后续请求浏览器携带 Cookie 里的 sessionid,服务器查表识别用户。

5. HTTP vs HTTPS

  • HTTP:80 端口,明文传输,存在窃听、篡改、伪装风险
  • HTTPS = HTTP + TLS;443 端口;加密传输;具备加密、完整性校验、身份认证三大能力
  • 两套加密搭配:
    1. 非对称加密(公私钥):协商预主密钥、证书验签,速度慢
    2. 对称加密:握手完成后,传输网页业务数据,速度快

6. CA 数字证书

  • CA:可信第三方机构;网站申请证书,提交公钥 + 域名信息。
  • 证书内容:域名、网站公钥、有效期、CA 签名。证书不含网站私钥!
  • CA 签名:CA 用CA 私钥对证书信息的摘要加密。
  • 浏览器校验:使用内置 CA 根证书里的CA 公钥验签,对比哈希摘要,同时检查域名、有效期。

7. TLS1.2 握手完整流程(你整理的版本)

  1. Client Hello:客户端发送随机数 A + 支持的加密套件列表
  2. Server Hello:服务端返回随机数 B + 选定加密套件,下发 CA 证书
  3. 客户端校验证书:CA 公钥解密 CA 签名拿到原始摘要;本地重新计算证书信息摘要,比对;校验域名、有效期
  4. 客户端生成预主密钥 PMS,用证书内服务器公钥加密发给服务器
  5. 服务器用自己服务器私钥解密,拿到 PMS
  6. 双方用【A + B + PMS】各自计算,得到相同对称会话密钥
  7. 握手校验报文,握手完成;后续业务流量使用会话密钥对称加密传输

加密套件:一套算法组合,握手阶段客户端和服务器协商双方共用的加密算法。

8、常见 Header

请求头

  • Host:目标主机域名
  • User-Agent:客户端浏览器 / 设备信息
  • Referer:来源页面
  • Accept:客户端能接收的响应类型
  • Accept-Encoding:支持的压缩 (gzip)
  • If-Modified-Since / If-None-Match:协商缓存
  • Authorization:认证信息(token)
  • Cookie:携带 cookie

响应头

  • Server:服务器软件

  • Content-Type:响应体 MIME 类型 application/json / text/html

  • Content-Length:响应体字节长度

  • Transfer-Encoding: chunked:分块传输

  • Cache-Control / Expires:强缓存

  • Set-Cookie:设置 cookie

    #只返回响应行+响应头
    curl -I www.baidu.com

    #跳过证书验证
    curl -k www.baidu.com

    #不显示进度条
    curl -s www.baidu.com

    #输出到文件flie.txt
    curl -o file.txt www.baidu.com

    #指定请求方法
    curl -X GET www.baidu.com

    #添加请求头
    curl -H "Content-Type: application/json"

    #请求体数据
    curl -d "{"title":"http学习","content":"curl实操"}"

    #追随重定向
    -L

相关推荐
小此方2 小时前
Linux网络(二十三):图文详解子网划分、分类划分的本质
linux·运维·网络
上海广测检测科技有限公司2 小时前
音响网络安全认证:联网音频设备的全球合规法规与测试要点解读
网络·经验分享·安全
wdfk_prog2 小时前
LWIP教程 16:从 MTU 到 `ip4_frag()` / `ip4_reass()`——IPv4 分片、重组、超时与内存压力
运维·服务器·网络·笔记·学习
无线图传-HDMI视频延长传输2 小时前
AM8962DT/AM8962DR:4K60 ProAV over IP 芯片方案,35ms 超低延迟 + 过交换机一对多+KVM 透传
网络·网络协议·tcp/ip
zyseo82 小时前
谷歌SEO 站点地图优化实战:sitemap 是索引候选清单的运营工具
网络·数据库·经验分享·笔记·搜索引擎
0+1112 小时前
Linux --HTTP Cookie 与 Session
网络·网络协议·http
牛战士coding2 小时前
如何让 Claude Desktop 与 Cursor 调用订单工具?MCP Streamable HTTP 接入思路
网络·网络协议·http
zxcvb1532 小时前
轻量网站内容监测系统实践:从标题监控到异常告警
网络