JavaWEB 是指所有通过 Java 语言编写可以通过浏览器访问的程序的总称。
什么是web应用? Web应用即网站中的程序。
常用软件体系结构
C/S 客户端/服务器(Client/Server)
例如QQ;
需要编写服务器端程序,以及客户端程序,例如我们安装的就是QQ的客户端程序;
缺点:软件更新时需要同时更新客户端和服务器端两端,比较麻烦;
优点:安全性比较好。
B/S 浏览器/服务器(Browser/Server)
优点:只需要编写服务器端程序;
缺点:安全性较差。
JavaWeb技术,所编写的web程序都是基于B/S结构的。
5.web应用程序的资源分类
静态web资源
表现形式:内容是静态的,不同的人在不同的时间来访问时都是相同的内容。HTML、CSS、JS 所需技术:HTML+CSS
动态web资源
表现形式:内容是由程序生成的,不同的人在不同的时间访问的内容很可能是不同的。 所需技术:HTML、CSS、数据库技术、高级语言(Java、C#、PHP)、客户端脚本技术:JavaScript、XML解析
HTTP协议
即超文本传输协议,用于定义 服务器于浏览器之间交换山上的过程以及数据本身的格式的协议。
特点:
支持B/S及C/S模式
简单快速:客户向服务器请求服务时,只需传送请求方法和路径。
由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
灵活:HTTP允许传输任意类型的数据。
正在传输的类型由Content-Type加以标记。
无状态:HTTP协议是无状态协议。
无状态是指协议对于事务处理没有记忆能力。
缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。
另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP1.0和HTTP 1.1
HTTP协议的客户端有服务器的交互过程中需要经过建立连接,发送请求信息,回送响应信息,关闭连接四个步骤。
因而对于下面代码:
<html> <body> <img src="/image01.jpg"> <img src="/image02.jpg"> <img src="/image03.jpg"> </body> </html>
http1.0需要请求4次和响应4次。
http1.1需要请求4次和响应1次。
请求消息包括以下数据:
请求行、请求头部、空行和请求数据四个部分组成。
//第一部分:请求行 GET / HTTP/1.1 //用来说明请求类型,要访问的资源以及所使用的HTTP版本. GET说明请求类型为GET另一个常用的POST //后面如果不为空,显示要访问的资源, //最后一部分说明使用的是HTTP1.1版本。 //第二部分:请求头部,用来说明服务器要使用的附加信息 Host:www.baidu.com Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9,ru;q=0.8 Cache-Control: max-age=0 Connection: keep-alive //从第二行起为请求头部,HOST将指出请求的目的地,也就是请求的哪台服务器/域名 //第三部分:空行,请求头部后面的空行是必须的 //即使第四部分的请求数据为空,也必须有空行。 //第四部分:请求数据也叫主体,可以添加任意的其他数据。 //这个例子的请求数据为空。
一般情况下,服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息。
HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。
//第一部分 HTTP/1.1 200 OK //状态行,由HTTP协议版本号, 状态码, 状态消息 三部分组成。 //第一行为状态行,(HTTP/1.1)表明HTTP版本为1.1版本,状态码为200,状态消息为(ok) //第二部分:消息报头,用来说明客户端要使用的一些附加信息 Content-Encoding: gzip Content-Type: text/html;charset=utf-8 Date: Mon, 13 Jun 2022 13:20:30 GMT Expires: Mon, 13 Jun 2022 13:20:30 GMT Server: BWS/1.1 //Date:生成响应的日期和时间;Content-Type:指定了MIME类型的HTML(text/html),编码类型是ISO-8859-1 //第三部分:空行,消息报头后面的空行是必须的 //第四部分:响应正文,服务器返回给客户端的文本信息。 //空行后面的html部分为响应正文。