JavaWeb
1、基本概念
1.1、前言
web开发:
- web 网页的意思 www.baidu.com
-
静态web
- html、css
- 提供给所有人看到的数据始终不会发生变化
-
动态web
- 页面会动态变化,每个人都不一样
- 技术栈:Servlet/JSP、ASP、PHP
-
静态web
在 Java 中,动态 web 资源开发的技术统称为 JavaWeb
1.2、web 应用程序
web 应用程序:可以提供浏览器访问的程序
- a.html、b.html ... 多个 web 资源可以被外界访问,对外界提供服务
- 这个统一的 web 资源会被放在同一个文件夹下,web 应用程序 ——> Tomcat:服务器
- 一个 web 应用有多部分组成
- html、css
- jsp、servlet
- java 程序
- jar 包
- 配置文件
web 应用程序编写完毕后,若想提供给外界访问:需要一个服务器统一管理
1.3、静态 web
- *.html、 *.htm,这些都是网页的后缀,如果服务器一直存在这些东西,我们就可以直接读取
- 静态 web 存在的缺点
- Web 页面无法动态更新
- 轮播图、点击特效、伪动态
- JavaScript
- VBScript
- 无法与数据库交互(数据无法持久化,用户无法交互)
- Web 页面无法动态更新
1.4、动态 web
页面动态变化,因人而异
缺点:
- 假如服务器动态web资源出现错误,我们就要重新编写我们的后台程序,重新发布
优点:
- 可以和数据库交互(数据持久化)
2、web 服务器
2.1、技术详情
-
ASP
- 微软
- 在HTML中嵌套了VB脚本
- 在ASP开发当中,基本一个页面都有几千行代码,维护成本很高
- 就是html代码里面嵌套 java 代码 <% %>
-
PHP
- 开发速度快,功能强大,跨平台,代码简单
- 无法承载大访问量的情况
-
JSP/Servlet
- B/S:浏览器服务器
- sun公司主推的B/S架构
- 基于java语言
- 语法像ASP
2.2、服务器
服务器是一种被动的操作,用于处理用户的一些请求和给用户一些响应信息
-
IIS
- 微软
- window自带
-
Tomcat
-
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个Java初学web的人来说,它是最佳的选择
Tomcat 实际上运行JSP 页面和Servlet。Tomcat最新版本为10.0.5。
3、Tomcat
3.1、安装tomcat
3.2、tomcat启动和配置
- tomcat 的 bin 包下的文件,打开即可
- http://localhost:8080/ 出现如下界面就说明开启了
-
配置:config 文件
server.xml:服务器核心配置文件,可以修改端口号(默认8080),可以修改主机的名称(默认 localhost —> 127.0.0.1,但是这个要去改系统)
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
-
常见端口号
tomcat:8080
mysql:3306
http:80
https:443
3.3、高难度面试题
请你谈谈网站是如何进行访问的?
- 输入一个域名
- 检查本机下的 C:\Windows\System32\drivers\etc\hosts 配置文件有没有这个域名的映射
- 有直接去对应的ip地址
- 没有就去DNS找
- 再找不到就返回找不到
3.4、发布一个 web 网站
不会就先模仿
4、Http
4.1、什么是http
超文本传输协议(HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 超文本:图片、音乐、视频、定位、地图....
- 端口:80
https:安全的
- 端口:443
4.2、两个时代
- http1.0
- http/1.0:客户端可以与web服务器连接后,只能获得一个web资源
- http2.0
- http/1.1:可以获得多个web资源
4.3、http请求
- 客户端 ——> 服务器
百度:
Request URL: https://www.baidu.com/
Request Method: GET
Status Code: 200 OK 状态码
Remote(远程) Address: 14.215.177.39:443
Referrer Policy: no-referrer-when-downgrade
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9 语言:zh-CN
Cache-Control: max-age=0
Connection: keep-alive
4.3.1、请求行
- 请求行的请求方法:GET
- 请求方式:GET/POST(一个更高效、一个更安全)
- get:请求能够携带的参数比较少,大小有限制,会在浏览器的url地址栏显示数据内容,不安全,但是高效
- post:请求携带的参数没限制,大小没限制,浏览器不会显示,安全,但不高效
4.3.2、消息头
Accept:告诉浏览器,所支持的数据类型
Accept-Encoding:支持哪种编码格式:utf-8...
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
Host:主机
4.4、http响应
- 服务器 ——> 客户端
Cache-Control: private 缓存控制
Connection: keep-alive 连接:保持连接
Content-Encoding: gzip 编码
Content-Type: text/html; 类型
4.4.1、响应体
Accept:告诉浏览器,所支持的数据类型
Accept-Encoding:支持哪种编码格式:utf-8...
Accept-Language:告诉浏览器,它的语言环境
Cache-Control:缓存控制
Connection:告诉浏览器,请求完成是断开还是保持连接
Host:主机
Refresh:告诉客户端多久刷新一次
Location:让网页重新定位
4.4.2、响应状态码
- 200:请求响应成功 200
- 3**:请求重定向
- 4**:找不到资源 404
- 5**:服务器代码错误 500 502->网关错误