HTTP(超文本传输协议)
-
作用:规范浏览器与服务器之间的传输
-
特点
- 简单:key-value
- 灵活:通过contentType来规范传输内容类别
- 无连接:一次请求处理完,立马断开连接 (HTTP1.1版本之后支持可持续连接,规定时间内无请求即断开)
- 无状态:对于相同的内容请求,服务器与浏览器之间无记忆,需要重新传送
-
交互流程:
- HTTP的交互流程一般分为四个步骤(一次完整的请求):
- 步骤一: 客户端和服务器端建立连接
- 步骤二: 客户端发送请求数据到服务器端(HTTP协议)
- 步骤三: 服务器端接收到请求后,进行处理,然后将 处理结果响应客户端(HTTP协议)
- 步骤四: 关闭客户端和服务器端的连接(HTTP1.1后不会立即关闭)
-
HTTP协议之请求格式
-
请求格式的结构:
- 请求头:请求方式、请求的地址和HTTP协议版本 请求行:消息报头,一般用来说明客户端要使用的一些附加信息 空行: 位于请求行和请求数据之间,空行是必须的。 请求数据:非必须。
-
HTTP协议之请求方式
-
根据HTTP标准,HTTP请求可以使用多种请求方法。 HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。 HTTP1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE 和 CONNECT 方法。
-
get核post请求方式的区别
-
get请求方式:
- 请求数据会以?隔开的形式在请求头中,不安全,没有请求主体部分。HTTP未规定请求数据的大小,但由于浏览器标题栏的长度限制,get不能携带大量数据
-
post请求方式
- 请求数据是在请求主体中发送,在URL中看不到发送数据,安全。适合数据量大的数据传送
-
选择:
- 在不考虑安全性时,选择get,因为无请求实体,效率高
- 在考虑安全性时,选择post
-
-
-
HTTP协议之响应
- 响应格式的结构:
- 响应行(状态行):HTTP版本、状态码、状态消息
- 响应头:消息报头,客户端使用的附加信息
- 空行:响应头和响应实体之间的,必须的。
- 响应实体:正文,服务器返回给浏览器的信息
- HTTP常见响应状态码含义: HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码 的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:
- 响应格式的结构:
- 常见状态码:
- 200 ok //请求成功
- 400 //客户端请求有语法错误,不能被服务端理解
- 401 //权限不够 这个状态代码必须和 WWW-Authenticate 报头域一起使用
- 403 //服务器接收到请求,拒绝提供服务
- 404 Not Found //请求资源不在
- 500 Internal Server Error //发生了不可预期的错误,网站出bug了,一般不提示给用户500
- 503 Server Unavailable //服务器当前不能处理客户端的请求, 一段时间后可能恢复正常
Tomcat服务器介绍和使用
-
问题:用户访问服务器,实际上就是需要服务器运行编写好的java程序,那么用户每一次都需要手动执行是不太现实的。所以参考Java的网络编程,开发出了一种容器,也就是所谓的服务器,将我们所编写的程序部署在服务器中,那么用户在访问服务器时,便可以自动执行java程序。
-
服务器定义:所谓服务器其实就是代码编写的一个可以根据用户请求实时的调用执行 对应的逻辑代码的一个容器。在普通用户看来就是一个安装程序。我们只需要将 服务器在操作系统上进行安装,并将我们事先编写好的逻辑处理代码根据规则放 到服务器的指定位置,启动服务器,那么服务器就自动的会根据接收到请求调用
并执行对象的逻辑代码进行处理。 -
Tomcat(web开发的主流服务器):
- Tomcat服务的下载和安装:
-
安装:
- 下载成功后会为压缩包文件,解压即可使用
- 注意:尽量不要解压在中文目录中
- 目录结构介绍:
- \bin 存放启动和关闭Tomcat的可执行文件
- \conf 存放Tomcat的配置文件
- \lib 存放库文件
- \logs 存放日志文件
- \temp 存放临时文件
- \webapps 存放web应用
- \work 存放JSP转换后的Servlet文件
-
校验安装:
-
打开bin目录,然后双击执行startup.bat文件,打开浏览器在地 址栏中输入 localhost:8080/ 如果出现tomcat广告页安装成功
-
Tips:
-
tomcat的运行依赖JDK,必须配置JDK 环境。
-
闪退,启动闪退问题一般是因为JDK的环境变量配置有问题, 参照1进行重新进行配置,如果还是闪退,使用:
- 在 bin\startup.bat 文件中的第一行前面加入:
- SET JAVA_HOME=JDK 目录
- SET CATALINA_HOME=解压后 Tomcat 的目录
-
为何Tomcat一定需要搭配JDK环境,因为Tomcat是由java程序编写的,lib文件里包含许多jar包(即很多class文件的集合),那么需要jvm才能运行这些jar包。
-
-
-
JDK 、jre、jvm三者的区别
- JDK是包含了Client与Server的JRE的,主要用于开发java程序,可以编译.java文件。同时可以编译.class文件
- JRE是包含了Client的JVM,主要用于运行java程序,即.class文件
- jvm是虚拟机,主要用于解码一系列的.class文件
- 三者主从关系:JDK>JRE>JVM
- 总结:JDK实际上包含了JRE的一切功能,但是在安装的时候,用户习惯将JDK与JRE分别安装。
Servlet介绍
- 问题:当浏览器发送请求时,服务器如何知道调用哪部分逻辑代码的方法去回应呢?
- 解决:如果所编写的代码是按照服务器所能识别的规则而编写的,那么在浏览器发送请求时,将会调用这部分逻辑代码
- 实现:Servlet技术
- 概念:
-
狭义:指Java语言实现的一个接口
-
广义:实现了Servlet这个接口的类(普及更为广泛)
-
Tip:Servlet 可以响应任何 类型的请求,但绝大多数情况下 Servlet 只用来扩展基于 HTTP 协议的 Web 服 务器
-
特点:
- 运行在支持java的应用服务器
- Servlet的实现遵循了服务器能够识别的规则,也就是服务器会自动 的根据请求调用对应的servlet进行请求处理
-
使用流程:
- 创建普通的java类并继承HttpServlet
- 覆写service方法
- 在service方法中书写逻辑代码即可
- 在webroot下的web-inf文件夹下的web.xml文件中配置servlet
-
运行流程
-
url:http://localhost:8080/projectName/url-pattern
- 组成: 服务器地址:端口号/虚拟项目名 /servlet的别名
- URI:虚拟项目名 /servlet的别名
-
说明:
- 浏览器发送请求到服务器,服务器根据请求URL地址 中的URI信息在webapps目录下找到对应的项目文件夹, 然后在web.xml中检索对应的servlet,找到后调用并执行 Servlet
-
-