Web入门
2025年12月27日大约 3 分钟
Web入门
HTTP协议
HTTP(HyperText Transfer Protocol,超文本传输协议)规定了浏览器和服务器之间传输数据的规则。
- 特点
- 基于TCP协议:面向连接,安全传输。
- 基于请求-响应模型:一次请求对应一次响应。
- 无状态协议:每次请求都是独立的,服务器不保存客户端状态。
- 缺点:多次请求间不能共享数据。
- 优点:速度快。
HTTP请求协议
请求行
请求行由三部分组成:请求方法、请求资源路径(URL)、协议(HTTP版本号)。
- 请求方法:常见的有GET、POST、PUT、DELETE等。
请求头
请求头是由多个键值对(key:value)组成的,包含了客户端发送给服务器的各种信息,如浏览器类型、可接受的数据类型、连接状态等。
- 常见请求头:
| 请求头字段 | 说明 |
|---|---|
| Host | 服务器域名或IP地址 |
| User-Agent | 浏览器类型和版本 |
| Accept | 客户端可接受的响应数据类型 |
| Accept-Language | 客户端偏好的语言 |
| Accept-Encoding | 客户端支持的压缩类型 |
| Content-Type | 请求体的数据类型 |
| Content-Length | 请求体的长度(字节数) |
请求体
请求体包含了客户端发送给服务器的数据,常见于POST、PUT等请求方法。
GET和POST区别
- GET请求:请求参数在请求行中,以URL的形式传递,没有请求体。并且请求大小有限制。
- POST请求:请求参数在请求体中传递,没有大小限制。
HTTP响应协议
响应行
响应行由三部分组成:协议(HTTP版本号)、状态码、状态描述。
- 常见状态码:
| 状态码 | 含义 |
|---|---|
| 1xx | 响应中-临时状态码,常见于WebSocket,表示请求已接收,告诉客户端应该继续请求或忽略。 |
| 2xx | 成功-表示请求成功,服务器处理完成 |
| 3xx | 重定向-需要客户端在发起一次请求完成整个处理 |
| 4xx | 客户端错误-责任在客户端。如请求了不存在的资源(404),客户端未授权(401)、禁止访问(403)等。 |
| 5xx | 服务器错误-责任在服务器。如Java后端代码异常等 |
响应头
响应头是由多个键值对(key:value)组成的,包含了服务器发送给客户端的各种信息,如服务器类型、响应数据类型、缓存控制等。
- 常见响应头:
| 响应头字段 | 说明 |
|---|---|
| Content-Type | 响应体的数据类型 |
| Content-Length | 响应体的长度(字节数) |
| Content-Encoding | 响应体的压缩算法,如 gzip |
| Cache-Control | 缓存控制策略,指示客户端如何缓存,例如max-age = 300表示最多缓存300秒 |
| Set-Cookie | 告诉浏览器为当前页面所在域设置Cookie |
响应体
响应体包含了服务器发送给客户端的数据,如HTML页面、JSON数据、图片等。
HTTP协议解析
了解
Java后端服务器解析可以使用ServerSocket类来实现基本的HTTP协议解析,
但因为HTTP协议较为复杂,实际开发中通常使用成熟的Web服务器(如Tomcat)来处理HTTP请求和响应。
- 客户端解析:浏览器会自动解析HTTP响应协议,并将响应体内容展示给用户。
- 服务器解析:服务器会根据HTTP请求协议中的请求行、请求头和请求体来处理客户端的请求,并生成相应的HTTP响应协议返回给客户端。
Tomcat
Web服务器
Web服务器:对HTTP协议操作进行封装,用于处理HTTP请求和响应的服务器软件,负责接收客户端请求,处理请求并返回响应数据。
使开发者不用直接对协议进行操作,简化了Web应用的开发。主要功能是“提供网上信息浏览服务”。
Tomcat概述
- Tomcat是一个开源的轻量级Java Web服务器,支持Servlet/JSP少量JavaEE规范。
- JavaEE:Java Enterprise Edition(Java企业版)。
- Tomcat也被称为“Web容器”、“Servlet容器”。