1、javaWeb介绍
javaWeb介绍
Web应用就是为用户提供的一种在互联网上浏览信息的服务,Web服务是动态的、可交互的、跨平台的和图形化的。JavaWeb就是一种动态的网站技术。
两层CS架构的优缺点:
优点:
数据库做为server,使用数据库特定的编程语言编写业务逻辑客户端提供操作界面和少量的业务逻辑处理
缺点:
移植性差(更换数据库需要重新编码)
不适用大型应用(客户端需要与数据库之间建立持续的连接)
三层CS架构 (客户端+应用服务器+DB)
特点:
- 数据库只负责数据的管理
- 应用服务器提供所有的业务逻辑的处理
- 客户端只负责提供操作界面
优点:
移植性好,适合大型应用
缺点:
客户端需要单独安装,开发复杂(需要自定义协议,编写客户端和服务器端的通信模块)
网络程序---BS(Browser/Server)架构
bs架构的优势
特点:
- 数据库只负责数据的管理
- web服务器负责业务逻辑的处理
- 浏览器负责提供操作页面
优点:
- 不需要单独安装客户端
- 开发相对于cs简单,客户端和服务器的通信模块都是使用标准的http协议进行通信
HTTP协议(重点)
http:即超文本传输协议。这个协议详细规定了浏览器和万维网服务器之间相互通信的规则。
HTTP就是一个通信规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们要学习的就是这个两个格式!客户端发送给服务器的格式叫“请求协议”;服务器发送给客户端的格式叫“响应协议”。
HTTP协议是无状态协议,浏览器和客户端连接过之后,是不会记住对方的,即 http协议占用内存少。
举例:例如昨天你给10086话务员打电话,问手机为啥欠费,今天 你再给10086话务员打电话问你恋爱了吗。今天的10086话务员能知道是昨天的你吗,不知道。即 挂电话之后再打,10086话务员就不记得你了。
请求协议:
一个基本的HTTP请求包含: 一个请求行,若干请求头(消息头),实体内容(请求体)
请求格式:
请求方式 资源路径 HTTP版本号(1.0/1.1)
几种请求方式:
1.GET 请求获取由Request-URI所标识的资源
2.POST 在Request-URI所标识的资源后附加新的数据
3.HEAD 请求获取由Request-URI所标识的资源的响应消息报头
4.DELETE 请求服务器删除由Request-URI所标识的资源
5.TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
6.PUT 请求服务器存储一个资源,并用Request-URI作为其标识
GET请求,POST请求:
详细看word文档;
get请求和post请求的区别:
get请求是没有请求体的,有一个专门存放参数的地方,还有会跟URL一个携带过去,中间用问号隔开,多个参数之间用&隔开,可以之间在地址栏看到请求的参数。不安全。
post请求有请求体,form表单的数据会有一个form data的地方存放请求的参数,在地址栏是看不到的,不携带参数过去,是安全的。
Get请求 1.请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接。 2.特定浏览器和服务器对URL长度有限制,例如IE对URL长度的限制是2083字节(2K+35)。 Post请求 1.没有缓存,请求信息不会在地址栏中出现,这样很安全 2.请求信息会储存在请求实体内容,理论上没有大小限制,这样就保证了不会出现请求信息过长而响应错误的信息。
响应协议:
浏览器通过请求协议请求服务器之后,服务器给浏览器返回的数据时尚什么样的呢?
一个完整的响应消息包括:
状态行、一个或者多个应答头、一个空行、响应实体
状态行格式:
HTTP版本号 状态码 状态描述
常用的状态码:
200(一切正常)
3xx(重定向)
400(请求出现语法错误)
403(请求资源不可用)
404(无法找到资源位置)
500(服务器内部错误)
响应码:
叫word文档
Http协议的三次握手:
1、第一次握手:客户端浏览器与服务器建立通信,通过uri访问目标资源。
2、第二次握手:request与response建立握手,完成请求与应答的工作交接,
Request一直工作到目标页面所有java代码都执行完毕,此时用以客户端显示的html代码在内存中生成完毕。此时request将工作流程交接给response,request生命周期结束。
Response叫应答对象,职责是将内存中的html向客户端回写。
3、第三次握手:服务器与客户端浏览器再次握手,由response将内存中的html代码向浏览器回传:
服务器再次连接浏览器,由response将内存中的html代码,向浏览器以io流的形式逐行回传,客户端浏览器接收一行,解释一行,显示一行。
URI和URL的区别:
URL是统一资源定位符,能够准确的定位网络上的唯一所在的地址。具体到某一事物,某一个人。
URI的子类包含URL和URN。是一个唯一标识。比如说姓名是可以重复的,那么URI就是能够唯一标识一个人的身份证号。
Servlet
什么是servlet?
Sun(Oracle)公司制定的一种用来扩展Web服务器功能的组件规范 。是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。一个Servlet负责对应的一个或一组URL访问请求,并返回相应的响应内容。是实现了特殊接口的Java类。
servlet在web中的位置:
扩展web服务器功能:
在BS(Browser Server)架构中,早期的Web服务器只能处理静态资源的请求,也就是无法根据请求进 行计算后再生成相应的HTML内容。servlet可以处理动态资源的请求。web服务器收到请求之后,可 以调用servlet来动态处理、生成动态页面并响应结果。
组件规范
组件规范是依靠一套API来实现的,也就是说开发中只要基于Sun公司提供的这套API,按照一定的规则来编写程序,那么就可以实现针对Web服务器的功能扩展。
组件只是对部分功能的一个实现,不能单独运行,必须放在一定的环境中才能运行。而这个针对各个组件进行管理、创建、销毁的运行环境称为Web容器。
servlet是一个组件,不能独立运行需要放在web容器里面才能运行,Java的jdk里面没有的运行servlet的类和环境,由web容器提供,比如常用的web容器:tomcat、Weblogic、JBoss
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· Open-Sora 2.0 重磅开源!