2026/1/14 16:22:25
网站建设
项目流程
网站开发源代码知识产权归属,百度蜘蛛池,app介绍模板,宁波网站设计价格什么是JavaWeb#xff1f;架构之间有哪些区别#xff1f;Java Web 定义#xff1a;JavaWeb是基于Java技术栈开发的Web应用的总称#xff1b;Web#xff08;World Wide Web#xff0c;中文为万维网#xff09;是一种基于互联网的信息服务系统#xff1b;核心是通过浏览器…什么是JavaWeb架构之间有哪些区别Java Web 定义JavaWeb是基于Java技术栈开发的Web应用的总称WebWorld Wide Web中文为万维网是一种基于互联网的信息服务系统核心是通过浏览器访问全球各地服务器上的资源我们日常用浏览器刷网页看新闻在线工具都是用的web服务器本质是java技术与web架构的结合是企业级web应用开发的主流方向之一SpringMVC是基于Javaweb实现的。对比维度C/S 架构客户端 / 服务器B/S 架构浏览器 / 服务器客户端形式专用软件需安装适配特定系统通用浏览器无需安装跨设备兼容开发维护成本高多平台开发客户端逐个升级低仅维护服务器升级同步所有用户响应速度快本地处理部分逻辑减少网络传输较慢依赖网络与服务器高并发易卡顿跨平台能力差不同系统需单独开发客户端好支持所有带浏览器的设备典型应用游戏客户端、专业工具如 Photoshop电商网站、在线文档、政务平台用户使用门槛高需安装对设备配置有要求低输入 URL 即可访问低配置设备可用Web工作的原理第1步用户发起请求输入URL在浏览器输入访问地址浏览器解析URL核心信息协议域名资源路径。第2步域名解析将域名转为IP地址依赖DNS域名系统优先查询浏览器本地DNS缓存如果本地没有缓存查询路由器DNS缓存仍无结果则向运营商DNS服务器发起查询运营商DNS服务器向DNS服务器查询第3步建立TPC连接通过TPC协议建立可靠网络连接三次握手客户端浏览器向服务器发生请求连接数据包服务器接受后返回同意连接数据包客户端确认收到响应发送连接确认数据包TCP连接正式建立第4步发送HTTP请求请求内容组成请求方法GET获取首页 HTML 等资源、POST提交登录表单等数据请求头包含浏览器信息如 Chrome 版本、Cookie登录状态、期望响应格式如 HTML、JSON请求体仅 POST 请求包含如加密后的用户名、密码。HTTP定义HTTPHyperText Transfer Protocol超文本传输协议是应用层的核心协议用于客户端如浏览器、Postman与服务器之间传输超文本数据HTML、图片、视频、JSON 等是万维网WWW服务的基础。浏览器与服务器的通信全依赖 HTTP 协议它定义了 “请求该发什么”“响应该怎么回” 的规则。第5步服务器处理请求并返回响应服务器协同处理流程应用服务器如 Nginx解析请求识别需返回首页资源若需数据支撑如首页推荐内容应用服务器向数据库服务器发起查询数据库服务器返回数据如推荐新闻、图片链接应用服务器生成响应内容HTML 代码、CSS 样式、JS 脚本经 HTTPS 加密后返回浏览器响应内容组成响应状态码200成功、404资源不存在、500服务器错误等响应头包含服务器信息如 Nginx 版本、数据类型text/html表示 HTML 页面、缓存规则响应体核心资源HTML 代码、图片二进制数据等。第6步关闭TCP连接浏览器没有请求其他资源会发生四次挥手客户端发生关闭连接请求服务器放回准备关闭响应等待剩余数据传输服务器确认无剩余数据发生关闭连接请求客户端返回确认关闭响应。TCP连接正式关闭第7步浏览器解析并渲染页面解析 HTML生成 DOM 树描述页面结构如标题、按钮位置解析 CSS生成 CSSOM 树定义页面样式如字体大小、颜色结合 DOM 树与 CSSOM 树生成渲染树仅包含需显示的元素及样式布局Layout计算渲染树中元素的位置和大小绘制Paint根据布局结果将元素绘制到浏览器窗口填充颜色、渲染图片执行 JavaScript运行页面 JS 脚本如搜索框自动补全功能动态修改页面内容更新 DOM 树、发送异步请求。HTTP和HTTPS核心区别HTTP 的明文传输存在 “窃听、篡改、伪造” 风险HTTPS 通过 “TLS/SSL 加密” 解决此问题两者核心区别如下对比维度HTTPHTTPS默认端口80443数据传输明文可被抓包工具直接查看TLS/SSL 加密抓包仅见密文安全性低无加密、无身份验证高加密 服务器身份验证需 CA 证书性能开销无加密 / 解密开销速度快需 TLS 握手、加密 / 解密性能略低可优化证书要求无需证书需 CA 机构颁发的 SSL 证书免费 / 付费适用场景非敏感数据如静态文档、内部系统敏感数据如登录、支付、电商、个人信息HTTP消息结构-请求什么是http消息结构HTTP 消息是客户端与服务器通信的 “数据载体”遵循“起始行 头部字段 空行 消息体”的格式空行是必需的用于分隔头部和消息体请求报文结构请求报文由客户端发送给服务器格式如下请求行必需定义请求方法、目标资源、HTTP版本请求头可选描述请求的元数据键值对形式空行必需标识请求头结束请求体可选携带请求数据如表单、JSON但get方法不推荐携带请求体却没有严格禁止请求行详解格式请求方法 请求URI HTTP版本请求方法定义对资源的操作如 GET 查询、POST 提交请求 URI目标资源路径如/api/user、/index.htmlHTTP 版本如HTTP/1.1最常用、HTTP/2、HTTP/3。示例GET /user?page1size10 HTTP/1.1 # GET请求查询第1页用户每页10条 POST /api/login HTTP/1.1 # POST请求提交登录数据使用浏览器开发者工具查看结构信息常见请求头核心元数据请求头字段作用说明示例Host服务器域名 端口HTTP/1.1 必需区分虚拟主机Host: example.com:8080User-Agent客户端身份浏览器 / 设备信息用于服务器适配User-Agent: Mozilla/5.0 (Windows NT 10.0; ...)Accept客户端可接受的响应数据类型Accept: text/html, application/jsonContent-Type请求体的数据类型POST/PUT 时必需Content-Type: application/jsonContent-Length请求体的字节长度帮助服务器接收完整数据Content-Length: 56Cookie客户端存储的 Cookie用于会话管理Cookie: sessionIdabc123; usernametestConnection是否复用 TCP 连接HTTP/1.1 默认keep-aliveConnection: keep-alive请求体示例POST/PUT 方法表单数据格式Content-Type: application/x-www-form-urlencodedtextusernameadminpassword123456remembertrueJSON 格式Content-Type: application/jsonjson{ username: admin, password: 123456, remember: true }HTTP消息结构-响应响应报文结构响应报文由服务器返回给客户端格式如下text响应行必需定义HTTP版本、状态码、原因短语响应头可选描述响应的元数据键值对形式空行必需标识响应头结束响应体可选服务器返回的实际数据如HTML、JSON响应行详解格式HTTP版本 状态码 原因短语状态码3 位数字标识请求处理结果如 200 成功、404 资源不存在原因短语状态码的文字描述仅辅助理解程序不依赖。示例textHTTP/1.1 200 OK # 请求成功 HTTP/1.1 404 Not Found # 资源不存在 HTTP/1.1 500 Internal Server Error # 服务器内部错误常见响应头核心元数据响应头字段作用说明示例Content-Type响应体的数据类型 编码客户端解析依据Content-Type: text/html; charsetUTF-8Content-Length响应体的字节长度Content-Length: 2048Server服务器软件信息如 Web 服务器类型Server: Nginx/1.21.0Set-Cookie服务器向客户端写入 Cookie会话管理Set-Cookie: sessionIdxyz789; Max-Age3600Location重定向的目标 URL配合 3xx 状态码使用Location: /loginCache-Control缓存控制策略如缓存有效期Cache-Control: max-age86400Retry-After服务不可用时建议重试的时间秒配合 503Retry-After: 3600响应体示例HTML 格式Content-Type: text/htmlhtml!DOCTYPE html html head title首页/title /head body h1欢迎访问HTTP协议讲解页面/h1 p当前时间2024-01-01 12:00:00/p /body /htmlJSON 格式Content-Type: application/jsonjson{ code: 200, message: 请求成功, data: { username: admin, role: admin, createTime: 2024-01-01 } }HTTP请求方法HTTP 请求方法定义HTTP 请求方法是客户端如浏览器、APP、接口调用工具向服务器发送请求时声明 “请求目的” 的标准化指令它定义了客户端希望服务器对目标资源执行的操作如 “获取资源”“提交数据”“更新信息”。作为 HTTP 协议的核心组成部分请求方法的设计遵循 “语义化” 原则不同方法对应明确的操作含义确保客户端与服务器之间的沟通统一、无歧义同时也影响服务器的处理逻辑如缓存策略、数据修改权限。核心方法如下请求方法核心语义关键特点典型应用场景GET查询资源1. 请求参数在 URL 中可见2. 无请求体3. 幂等4. 有 URL 长度限制约 2KB访问页面、查询列表如/user?page1POST提交资源创建1. 请求参数在请求体中不可见2. 非幂等3. 无长度限制表单提交、用户注册、登录PUT全量更新资源1. 需提供资源的完整信息2. 幂等3. 覆盖式更新全量修改用户信息如PUT /user/1DELETE删除资源1. 无请求体或仅传辅助参数2. 幂等删除用户DELETE /user/1、删除文章PATCH部分更新资源1. 仅需提供需修改的字段2. 幂等仅更新用户手机号PATCH /user/1HEAD获取资源头部与 GET 一致但无响应体仅返回头信息检查资源是否存在、获取缓存信息关键概念幂等性指 “多次执行相同请求结果完全一致无副作用”。例如GET 查询 100 次结果相同DELETE 删除 100 次第一次删完后后续 99 次仍返回 “删除成功”无额外副作用。重点GET 与 POST 的核心区别对比维度GETPOST数据位置URL 参数?keyvalue请求体Form/JSON安全性明文传输不安全易被抓包数据在请求体相对安全需配合 HTTPS幂等性幂等适合查询非幂等适合提交缓存支持浏览器默认缓存可通过头控制默认不缓存长度限制受 URL 长度限制约 2KB无限制HTTP状态码什么是HTTP状态码HTTP 状态码HTTP Status Code是服务器对客户端如浏览器、APP发送的 HTTP 请求的响应状态标识由 3 位数字组成范围 100-599它的核心作用是让客户端快速判断请求的处理结果成功、失败、需要进一步操作等无需解析响应体内容即可了解基本状态同时为问题排查如 “为什么页面打不开”“为什么登录失败”提供明确方向。HTTP 状态码分为 5 大类每类代表不同的 “请求处理状态”开发中需重点掌握常用状态码状态码分类核心含义常用状态码及说明1xx信息性临时响应100 Continue服务器已接收请求头客户端可继续发送请求体多用于大文件 POST2xx成功200 OK请求成功最常用201 Created资源创建成功如 POST 新增用户204 No Content请求成功但无响应体如 DELETE3xx重定向需额外操作301 Moved Permanently永久重定向如域名变更302 Found临时重定向如未登录跳登录页304 Not Modified资源未修改使用本地缓存4xx客户端错误400 Bad Request请求语法错误如 JSON 格式错401 Unauthorized未认证未登录403 Forbidden权限不足如普通用户访问管理员接口404 Not Found资源不存在URL 错405 Method Not Allowed请求方法不允许如用 POST 访问 GET 接口5xx服务器错误500 Internal Server Error服务器内部错误如代码 BUG502 Bad Gateway网关错误如 Nginx 连不上 Tomcat503 Service Unavailable服务暂时不可用如维护、负载过高504 Gateway Timeout网关超时如 Tomcat 处理太慢HTPP版本演进HTTP 协议不断迭代核心目标是 “提升性能、优化体验”各 HTTP 版本核心差异对比版本发布时间核心传输层关键特性主要痛点当前应用占比2025HTTP/0.91991TCP仅 GET、纯 HTML、短连接功能极简无错误处理0%淘汰HTTP/1.01996TCP多方法、HTTP 头部、多媒体短连接默认无缓存1%老旧设备HTTP/1.11999TCP长连接、管道化、缓存机制队头阻塞、头部冗余40%-50%HTTP/22015TCP二进制帧拆分消息为二进制格式的小块、多路复用同时传输多个 HTTP 请求 / 响应、HPACK头部压缩算法TCP 队头阻塞45%-55%HTTP/32022UDPQUIC无队头阻塞、0-RTT、连接迁移兼容性需完善10%-20%关键问题HTTP/1.1 的 “队头阻塞”指 “同一 TCP 连接中前一个请求未完成后续请求必须排队等待”—— 若前一个请求超时后续所有请求都卡住。HTTP/2 的多路复用通过 “二进制帧拆分” 解决此问题。