Skip to content

Web 与 HTTP 基础

作者: luote (luote) · 个人主页 luote996.cn

浏览器里发生了什么

用户在地址栏输入 http://localhost:5173/login 并回车后,浏览器会向服务器发起一次 HTTP 请求。服务器处理完后返回 HTTP 响应,浏览器根据响应内容渲染页面。

create-luote 是典型的 前后端分离:前端只负责页面,后端只负责接口,二者通过 HTTP + JSON 通信。

URL 结构

http://localhost:8080/api/users?page=1&size=10 为例:

部分含义
http协议
localhost:8080主机与端口(后端默认 8080,前端 dev 默认 5173)
/api/users路径,对应后端 Controller 上的路由
?page=1&size=10查询参数,分页常用

常见 HTTP 方法

方法典型用途luote 示例
GET查询数据获取当前用户信息
POST新增或提交登录、注册、上传
PUT全量更新修改用户资料
DELETE删除软删除用户

REST 风格约定:用名词表示资源(如 /users),用 HTTP 方法表示操作。脚手架的 Controller 基本遵循这一习惯。

请求与响应长什么样

请求头(Header)

常见字段:

Header作用
Content-Type告诉服务器 body 格式,JSON 多为 application/json
Authorization携带 JWT,格式 Bearer <token>

登录成功后,前端会在后续请求的 Header 里带上 Token,后端过滤器校验通过才允许访问受保护接口。

请求体(Body)

POST 登录示例:

json
{
  "username": "admin",
  "password": "admin123",
  "captchaKey": "uuid",
  "captchaCode": "abcd"
}

响应体(Body)

luote 统一使用 Result 包装:

json
{
  "code": 200,
  "message": "success",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIs...",
    "user": { "id": 1, "username": "admin" }
  }
}

前端 request.ts 会解析 code,非 200 则提示错误并中断流程。

状态码

状态码含义常见场景
200成功业务 code 也可能在 body 里表示失败
401未认证Token 缺失或过期
403无权限角色不足
404路径不存在接口写错
500服务器错误未捕获异常

JSON 是什么

JSON(JavaScript Object Notation)是前后端交换数据的通用格式。键必须是双引号字符串,值可以是字符串、数字、布尔、数组、对象或 null。

Java 里用 DTO/VO 类对应 JSON 字段;TypeScript 里用 interfacetype 描述结构,编译期能发现字段拼写错误。

跨域 CORS

前端 http://localhost:5173 请求后端 http://localhost:8080 属于 不同源(端口不同)。浏览器默认会拦截,需要后端配置 CORS 白名单。脚手架在 SecurityConfig 中已处理开发环境跨域,生产环境需在配置里填写真实前端域名。

与 luote 脚手架的关系

概念在脚手架中的位置
登录 POSTAuthController + src/api/auth.ts
统一响应common/result/Result.java
携带 TokenJwtAuthenticationFilter + request.ts 拦截器
跨域SecurityConfig

下一章:SQL 与 MySQL

MIT Licensed