1 HTTP协议
协议: 经过谈判、协商而制定的共同承认、共同遵守的文件
超文本传输协议,规定了浏览器和服务器之间数据传输的规则
特点:
基于TCP协议:面向连接,安全
基于请求-响应模型的:一次请求对应一次响应
HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
优点:速度快
缺点:多次请求间不能共享数据。
Java中使用会话技术(Cookie、Session)来解决这个问题
请求包括 请求行、 消息报头、 请求正文
请求数据分为3部分:
请求行:请求方式 请求资源 http协议版本
GET请求
URL:协议,域名,端口,应用名称,资源名称
地址栏(URI部分)会跟上参数数据。以?开头,多个参数之间以&分割
提交参数数据有限制,不超过1KB
不适合提交敏感数据,如密码等
浏览器直接访问的请求,默认提交方式是GET方式
POST请求
参数不会跟着URI后面。而是在请求的实体内容中。没有?开头,多个参数之间以&分割 提交参数数据无限制
适合提交敏感数据
http1.0:当前浏览器客户端与服务端建立连接后,只能发送一次请求,一次请求后连接关闭 http1.1:当前浏览器客户端与服务端建立连接后,可以在一次连接中发送多次请求。(基本都使用1.1)
请求头:第二行开始,格式为key:value形式。
常见的HTTP 请求头:
Host: 表示请求的主机名
User-Agent: 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ... Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT ...) like Gecko;
Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;
Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;
Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。
一个空行
请求体: POST请求的最后一部分,存放请求参数
响应也包括三个部分,分别是: 状态行、 消息报头、 响应正文
响应数据分为3部分:
响应行:响应数据的第一行。HTTP/1.1表示协议版本,200响应状态码,OK状态码描述
状态码:服务器处理请求的结果,由3位数字组成,第1个数字定义了响应的类别
1xx:指示信息--表示请求已接收,要求客户端继续提交请求才能完成整个处理过程
2xx:成功--表示请求已被成功接收、理解、接受,并已经完成整个处理过程
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
响应头:第二行开始,格式为key:value形式 一个空行
响应体: 最后一部分。存放响应数据
网络分层模型
应用层:面向具体应用的协议,如 Telnet、SSH、FTP、SMTP及HTTP 等
传输层:TCP/UDP协议
网络互联层:IP 协议
链接层:负责在以太网、WiFi 这样的底层网络上发送原始数据包
客户端
是在用户本地收集用户意图、与服务端通信、为用户展现服务结果的程序,例如网络聊天软件QQ、网络游戏程序等。
前端
是客户端的一种,基于浏览器与服务端进行通信,用户可以提交请求,也可以展示服务端处理后的结果。
服务端
运行在服务器上的程序,为客户端提供访问接口,能够接受客户端的请求,并对其进行响应。
C/S结构
客户端-服务器端结构,用户通过客户端软件向服务端发送请求,服务端进行业务处理,并将处理结果响应给客户端。
特点
可以实现跨平台,客户端零维护,响应速度依赖服务器性能及网络带宽
B/S结构
浏览器端-服务器端结构,开发人员不需要开发任何客户端界面,而统一采用标准的浏览器作为通用客户端,用户通过浏览器作为代理向Web服务器发送请求,Web服务器进行业务处理,并将处理结果响应给浏览器。
特点
桌面级应用,响应速度快,安全性强,个性化能力强,响应数据较快。
2 Tomcat服务器
Web服务器
已知HTTP协议,如何用Java基础知识实现Web服务?
1. 手动解析HTTP请求;
2. 逻辑处理
3. 手动封装数据,按照HTTP协议封装数据
静态资源:HTML、CSS、JavaScript、图片等。负责页面展现
动态资源:Servlet、JSP 等。负责逻辑处理
数据库:负责存储数据
HTTP协议:定义通信规则
Web服务器:负责解析 HTTP 协议,解析请求数据,并发送响应数据
Web服务器是一个应用程序(软件),对 HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作,让Web开发更加便捷。
Tomcat
启动软件
找到%Tomcat%/bin/startup.bat ,双击这个文件,弹出窗口,显示信息(不要关闭此窗口) 打开浏览器,输出以下地址(http://localhost:8080)
关闭软件
找到%Tomcat%/bin/shutdown.bat,双击这个文件即可!(或者直接关闭startup.bat启动的窗口)
打开浏览器,输出以下地址(http://localhost:8080)。看到“无法连接”(最好先清空浏览器缓存)
Tomcat-配置文件
1.server.xml
Tomcat的主配置文件,用于配置Tomcat服务器的基本参数,如端口号、连接器、虚拟主机等。
2.context.xml
用于配置Tomcat的Context,用于控制Web应用的访问权限和资源访问。
3.web.xml
Web应用的部署描述符文件,用于配置Web应用的基本参数,如Servlet、Filter、Listener等。
Tomcat-常见问题
1.闪退问题
原因:Tomcat软件是java语言开发的。 Tomcat软件启动时,会默认到系统的环境变量中查找一个名称叫JAVA_HOME的变量。这个变量的作用找到Tomcat启动所需的jvm。
解决办法; 到环境变量中设置JAVA_HOME的变量JAVA_HOME= C:\Program Files\Java\jdk1.x.0_xx (注意别配置到bin目录下)
2.startup.bat启动乱码
原因:如果弹出窗口乱码,是因为在tomcat配置里默认的控制台日志输出编码为UTF-8,而Windows下控制台的默认编码格式为ANSI,因此需要调整输出日志编码
解决办法:找到%Tomcat%/conf/logging.properties文件,找到其中的“java.util.logging.ConsoleHandler.encoding = UTF-8”,将值修改为ANSI即可。
3.端口占用的错误
原因: Tomcat启动所需的端口被其他软件或另外的Tomcat实例占用了
解决办法:
a)关闭其他软件程序,释放所需端口
查看指定端口占用:netstat -ano | findstr 8080
查看指定PID的进程信息:tasklist | findstr 6980
终止程序:taskkill /PID 6980 /F
b)修改Tomcat软件所需端口
找到并修改%Tomcat%/conf/server.xml文件
Tomcat-部署Web应用
1、在webapps目录下创建一个文件夹,名字即为web应用名称
2、放入case01.war
3、启动服务器 、
4、打开浏览器,输入地址访问目标(http://localhost:8080/case01/)
案例2
1、在webapps目录下创建一个文件夹,名字即为web应用名称
2、放入静态资源,例如HTML、CSS、图片等文件
3、启动服务器
4、打开浏览器,输入地址访问目标