【前端】HTTP协议

37 阅读2分钟

什么是协议?

协议是网络中通信双方必须共同遵守的规则,就像两个人说话要用同一种语言一样。

常见的协议有:

  • TCP/IP:网络传输基础协议(打包、路由、传输)
  • HTTP:浏览器和服务器之间传递网页数据的协议
  • SMTP:发邮件用的协议
  • SOAP:早期Web服务数据交换用的协议(现在常被REST替代)

HTTP协议详解

HTTP 是 浏览器(客户端)和服务器之间通信的规范。它定义了消息的结构,包括请求和响应两大类。

HTTP请求结构

  1. 请求行:说明你要做什么
    示例:
    GET /index.html HTTP/1.1
    POST /api/user HTTP/1.1
    
  2. 请求头(Headers) :提供请求的附加信息
    常见的请求头有:
  • User-Agent: 表明是哪个浏览器或工具发出的请求(如Chrome、爬虫)
  • Referer: 表示当前请求是从哪个页面跳转来的(防盗链相关)
  • Cookie: 存放登录状态、用户ID等数据
  1. 请求体(Body) :仅POST等方式才包含,一般用于提交表单或JSON数据

HTTP响应结构:

  1. 状态行:告诉客户端请求结果
    示例:
    HTTP/1.1 200 OK
    HTTP/1.1 404 Not Found
    
  2. 响应头(Headers) :附加信息
    常见的响应头有:
  • Content-Type: text/html(返回的是网页)
  • Content-Type: application/json(返回的是JSON数据)
  1. 响应体(Body) :真正返回的数据,比如网页HTML、JSON、图片等

请求方式 GET vs POST

项目GETPOST
参数位置URL后面请求体
安全性差(明文)相对更好
数据长度限制有限制无限制(理论)
用途查询数据提交数据

爬虫重点关注:

  • 请求头中的:
    • User-Agent: 模拟正常用户访问
    • Referer: 模拟跳转来源,绕过防盗链
    • Cookie: 携带登录状态、反爬 token
  • 响应头中的:
    • Set-Cookie: 服务端设置 cookie
    • Content-Type: 判断数据类型
    • 其他包含tokenauth字段的内容(防爬关键)

示例请求(GET):

GET /search?q=chatgpt HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0
Referer: https://www.google.com/

示例响应:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Set-Cookie: sessionid=abc123