文章目录
1. 基本概念
1.1 前言
- 静态web
- 动态web
在Java中,动态web资源开发的技术统称为Java Web。
1.2 web应用程序
web应用程序:可以提供浏览器访问的程序。
- HTML文件等web资源
- URL:统一资源定位符
- 一个web应用由多部分组成(静态web,动态web)
- HTML, CSS, js
- jsp, Servlet
- java程序
- jar包
- 配置文件(Properties)
web应用编写完成后,需要服务器进行管理,提供给外接访问。
1.3 静态web
*.htm
,*.html
都是网页的后缀
- 静态web存在的缺点
- web页面无法动态更新
- 轮播图,点击特效,伪动态
- JavaScript
- 无法和数据库交互(数据无法持久化,用户无法交互)
- web页面无法动态更新
1.4 动态web
页面动态展示,效果因人而异
动态web存在的缺点:
- 如果动态web资源出现了错误,需要重写编写后台程序,重新发布;
优点:
- 页面可以动态更新
- 可以与数据库交互
2. Web服务器
2.1 技术讲解
ASP:
- 微软:国内最早流行
- 在HTML中嵌入VB脚本,ASP+COM;
- 几千行业务代码,页面很混乱
- 维护成本高
- C#
- IIS
PHP:
- 开发速度快,功能强大,跨平台,代码简单
- 无法承载大访问量(局限性)
JSP/Servlet:
- B/S架构: 浏览和服务器
- C/S架构: 客户端和服务器
- 基于Java语言
- 可以承载三高(高并发 高可用 高性能)问题带来的影响
2.2 Web服务器
服务器:一种被动的操作,处理用户的请求、给用户响应信息
Tomcat
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
Tomcat 实际上运行JSP 页面和Servlet。Tomcat最新版本为10.0.14。
工作3-5年后, 可以尝试手写Tomcat服务器
3.Tomcat
3.1安装Tomcat
下载安装包, 解压即可
3.2Tomcat启动和配置
文件夹作用
启动/关闭Tomcat
访问测试: localhost:8080
3.3配置
配置启动端口
默认端口:8080
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
配置主机名称
- 默认主机名: localhost = 127.0.0.1
- 默认网站存放位置: webapps
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
网站访问流程
- 浏览器输入域名
- 检查本机的 hosts配置文件是否有此域名
- 有: 直接返回对应的IP地址, 这个地址有我们访问的web程序可以直接访问
- 没有: 到DNS服务器查找, 找到就返回, 找不到提示
4.HTTP协议
4.1. 什么是HTTP
HTTP(超文本传输协议)是一个简单的请求-响应协议,通常运行在TCP之上。
- 文本:HTML,字符串,
- 超文本:图片、音乐、视频、定位、地图
- 默认端口:80 (HTTPS:443)
4.2. 两个时代
- HTTP 1.0
- HTTP/1.0
- 客户端可以与web服务端连接后,只能获得一个web资源,断开连接
- HTTP 2.0
- HTTP/1.1
- 客户端与服务器端连接后,可以获得多个web资源
4.3. HTTP请求
- 客户端 - 发请求(Request) - 服务器
百度:
Request URL: https://www.baidu.com/index.html # 请求地址
Request Method: GET # get/post方法
Status Code: 200 OK # 状态码 200
Remote Address: 36.152.44.96:443 # 远程地址
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
请求行:
- 请求行中的请求方式:GET
- 请求方式:Get / Post / HEAD / DELETE / PUT …
- get:一次请求能够携带的参数比较少,大小有限制,会在浏览器的URL地址栏显示数据内容。不安全,但高效。
- post:请求能够携带的参数没有限制,大小无限制,不会在浏览器URL中显示,安全,不够高效。
消息头:
- Accept: 告诉浏览器支持的数据类型
- Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 ISO-8859-1
- Accept-Language: 告诉浏览器的语言环境
- Cache-Control: 缓存控制
- Connection: 告诉浏览器,请求完之后断开还是保持连接
- HOST: 主机
4.4. HTTP响应
- 服务器 - 响应 - 客户端
百度:
Cache-Control: private # 缓存控制
Connection: keep-alive # 保持连接
Content-Encoding: gzip
Content-Type: text/html;charset=utf-8
响应体:
- Accept: 告诉浏览器支持的数据类型
- Accept-Encoding: 支持哪种编码格式 GBK UTF-8 GB2312 ISO-8859-1
- Accept-Language: 告诉浏览器的语言环境
- Cache-Control: 缓存控制
- Connection: 告诉浏览器,请求完之后断开还是保持连接
- HOST: 主机
- Refresh: 告诉客户端,多久刷新一次
- Location: 让网页重新定位
响应状态码:
- 200 :请求响应成功
- 3xx :请求重定向
- 4xx :找不到资源 (资源不存在) 404
- 5xx :服务器代码错误 500 , 502(网关错误)