XML

什么是XML

xml(可扩展标记语言) 是一种用于存储和传输数据的标记语言

其核心设计目的是保存数据、传输数据而非显示数据

基础语法

一个XML文档必须包含根元素,所有其他元素都包含在根元素内

<?xml version="1.0" encoding="UTF-8"?> <!-- XML声明 -->
<root> <!-- 根元素 -->
<!-- dom4j xpath sax -->
<child>Content</child>
</root>

HTTP

报文格式

请求报文

首行:请求首行、响应首行

头:请求头、响应头

空行

体(真正交换的数据):请求体、响应体;

Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: rl_anonymous_id=RudderEncrypt%3AU2FsdGVkX1%2FFQliJxJasdQXmBKDmciKz973NF4KCkXOsQFk%2F5WEw74GA%2BBsG1dOEox0upaBc7nOGASwTackdng%3D%3D; rl_page_init_referrer=RudderEncrypt%3AU2FsdGVkX1%2BnR7opN%2B4%2FjG0dV0ND8HAPaWGsR1TP45M%3D; rl_page_init_referring_domain=RudderEncrypt%3AU2FsdGVkX19wt6WCot4A1pCNTxgwQXjh5BQp5OSeGSY%3D; rl_user_id=RudderEncrypt%3AU2FsdGVkX1%2B%2B7cIqlxmT7i9GJipkGngeCX8sJH9KbfNYV1IrKd07dgcGXZUx%2BQbCDMX8dq%2BwmLLEJGNrdfOPrEzrEHdJYguRyk1kNIGHI0qZ9uJZK%2Fzpp6SV9SMhcI5m1UVzFm8Rti%2Frz6msLxICJrmLl4EHwoCq4rQM9H6lz3w%3D; rl_trait=RudderEncrypt%3AU2FsdGVkX1%2Bz1pRYSj%2F1Bf8HpPYgCeYmReY%2F%2Fh6eFZ%2BThzcSXlBYlHieAwy389uSzbpuib1O4391GOmutycM4FWIyWx88zmKtwu9IalF632EC56t8QWh8fj186MzIXurcjcZv3uF%2FftAa6s3lpe6tA%3D%3D; rl_session=RudderEncrypt%3AU2FsdGVkX19aLEdqtbkVrzEmjoyi9y9olkhj41at3PW9vESr%2BLYwghv9C9awCB8YNv79XvyMwuBLCL7QrQKr%2FuzsX2Gsg5jL7PjHbJqnoEviXmx1SfhstYDVh8lRClhbmYOX0CGVzcdPds9RtppSIA%3D%3D; ph_phc_4URIAm1uYfJO7j8kWSe0J8lc8IqnstRLS7Jx8NcakHo_posthog=%7B%22distinct_id%22%3A%22299e10a9c526592a8300d2390cbaeda8fb9ffa1ee734d56581a0e1ad18ea27ef%2367233cbf-79e3-4431-98a9-a9a75f3f15f1%22%2C%22%24sesid%22%3A%5B1748334817172%2C%22019710da-1955-71b5-93eb-1947aeb1d93d%22%2C1748334418261%5D%2C%22%24epp%22%3Atrue%2C%22%24initial_person_info%22%3A%7B%22r%22%3A%22%24direct%22%2C%22u%22%3A%22http%3A%2F%2Flocalhost%3A5678%2Fsetup%22%7D%7D
//空行
//体

响应报文

HTTP/1.1 200 OK                       <-- 状态行          (HTTP协议版本 状态码 状态信息)
Date: Mon, 15 May 2023 09:00:00 GMT <-- 响应头开始 (响应头名: 响应头值)
Content-Type: application/json
ETag: "5d8c72a2"
Cache-Control: max-age=3600 <-- 响应头结束
(空行)
{"id":123,"name":"张三"} <-- 响应体 (服务器交给客户端的数据)

请求方式

GET请求

POST 请求

文件上传表单,必须用POST

常见HTTP头

请求头(Request Header)

浏览器给服务器传输数据会放在URL或请求体

请求头是浏览器告诉服务器,数据的规则

头字段 说明 示例值
Accept 指定客户端可处理的响应内容类型(MIME 类型) text/html, application/json
Accept-Encoding 声明客户端支持的压缩算法 gzip, deflate, br
Accept-Language 声明客户端的首选语言 zh-CN, en-US;q=0.9
Authorization 包含认证凭据(如 JWT、Basic Auth) Bearer xxxxx.yyyyy.zzzzz
Cookie 发送服务器设置的 Cookie 数据 sessionId=abc123; username=john
Content-Type 请求体的媒体类型(仅用于 POST/PUT 等) application/json
Content-Length 请求体的字节长度 348
Host 目标服务器的域名和端口(HTTP/1.1 必需) www.example.com:8080
Referer 当前请求页面的来源 URL https://www.google.com/
User-Agent 标识客户端(浏览器/操作系统) Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Cache-Control 控制缓存行为(如 no-cache, max-age=3600) no-store
If-Modified-Since 缓存验证:资源在此时间后修改过才返回新数据 Wed, 21 Oct 2023 07:28:00 GMT

响应头(ResponseHeader)

服务器给浏览器的真正内容在响应体中的;

但是这个内容怎么用的说明书;就是响应头;

头字段 说明 示例值
Content-Type 响应体的媒体类型 text/html; charset=UTF-8
Content-Length 响应体的字节长度 1245
Content-Encoding 响应体的压缩算法(与请求头 Accept-Encoding 对应) gzip
Cache-Control 指导客户端/代理如何缓存响应 max-age=3600, public
Set-Cookie 服务器向客户端设置 Cookie sessionId=def456; Path=/; Secure; HttpOnly
Location 重定向目标 URL(状态码 3xx 时使用) https://new.example.com/login
Server 服务器软件名称 nginx/1.18.0
ETag 资源的唯一标识符,用于缓存验证 “33a64df551425fcc55e4d42a148795d9”

MIME类型

MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的标准,用来表示文档、文件或字节流的性质和格式

响应状态码

类别 范围 常见状态码 含义
1xx 100+ 100 Continue 继续请求
2xx 200+ 200 OK 201 Created 204 No Content 成功处理
3xx 300+ 301 Moved Permanently 304 Not Modified 重定向/缓存有效
4xx 400+ 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 客户端错误
5xx 500+ 500 Internal Server Error 502 Bad Gateway 503 Service Unavailable 服务器错误

Tomcat

官网https://tomcat.apache.org/

Web容器;