JavaWeb学习笔记(一)—— web基本概念、tomcat、http
突然发现对网络编程开始感兴趣,趁着双休日时间多来学习一下web相关的知识。预计两周内学完Javaweb,并不断更新学习笔记。所学习的网课是狂神的JavaWeb系列视频。
JavaWeb
1. 基本概念
1.1 前言
web就是一个网页。
- 静态web
- html,css
- 提供给所有人的数据始终不会发生变化
- 动态web
- 几乎所有网站都是动态web
- 不同的人在不同时间地点所看到的信息都不同
- Servlet、JSP等
1.2 web应用程序
web程序:就是提供一个让浏览器可以访问的程序
web程序编写完毕后,若想提供给外界访问,则需要一个服务器来统一管理
1.3 静态web
- *htm文件和 *html文件
客户端向服务器发送请求Request,服务器的web service 做响应Response:
- 缺点
- web页面无法动态更新
- 轮播图
- js
- 无法和数据库交互(数据无法持久化,用户无法交互)
- web页面无法动态更新
1.4 动态web
动态web资源交给 jsp/servlet处理,页面会动态展示,展示效果因人而异
-
优点
- 可以与数据库交互
- 可以动态更新
-
缺点
- 加入服务器的动态web一旦发生错误,就需要重新编写后台程序,需要停机维护
2 .web服务器
2.1 常见web服务器
-
IIS
- 微软;ASP;Windows自带
-
Tomcat
Tomcat 服务器是一个免费的开放源代码的Web
应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP
程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache
服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache
服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP
页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为10.0.5**。**
3. Tomcat
3.1 tomcat启动和关闭
遇到的问题:
- 安装tomcat后,点开tomcat/bin目录下的start.bat 以后 ,bat窗口一闪而过, 也无法访问
localhost:8080
解决方案:
- 一闪而过的原因是tomcat启动文件中没有设置jdk路径。
- 编辑start.bat,在启动文件中添加set “JAVA_HOME=D:\Program Files\Java\jdk-8” ,其中JAVA_HOME就是jdk的路径
- 编辑shutdown.bat,进行同样的操作
3.2 配置
在conf/server.xml文件中:
-
可以配置启动的端口号
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
-
tomcat默认端口号为:8080
-
mysql:3306
-
http:80
-
https:443
-
-
可以配置主机名称
- 默认主机名为:localhost
- 默认网站应用的存放位置为:webapps
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
思考:如何访问一个网站?
本机中存在host配置文件,目录为C:\Windows\System32\drivers\etc\hosts
- 在浏览器中输入域名
- 检查本机的hosts配置文件下有没有这个域名映射
- 有:直接返回对应的ip地址
- 没有:去DNS服务器寻找
- 去DNS服务器中寻找,找到就返回,找不到就返回找不到。
3.3 发布一个web网站
- 在webapps下复制一份root文件夹,删除掉除了WEB_INF以外的所有文件
- 并新创建一个index.html文件
- 访问localhost:8080/文件夹名, 即可访问
webapps目录结构
-- webapps
--ROOT
--lujintao :网站的目录名
--WEB-INF
--classes :java 程序
--web.xml
--index.html : 默认首页
--static
--css
--style.css
--js
--img
-- ...
4.http
4.1 概念
http(超文本传输协议)是一个简单的请求-响应协议,通常运行于TCP之上。
- 文本:html、字符串等
- 超文本:图片、音乐、视频、定位等
- 默认端口:80
https:安全
- 443
4.2 http1.0和http2.0
- http1.0
- 客户端与web服务器连接后,只能获得一个web资源就要断开连接
- http2.0
- 客户端与web服务器连接后,可以获得多个web资源才断开连接
4.3 http请求
- 客户端 ---- > 发送请求 ---- >服务器
以百度为例,在浏览器中查看网络:
Headers:
General:
请求 URL: https://www.baidu.com/ Request URL
请求方法: GET Status Method:get方法或post方法
状态代码: 200 Status Mode
远程地址: 36.152.44.95:443 Remote Address
引用站点策略: strict-origin-when-cross-origin Referer Policy
Accept: text/html
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cache-Control: max-age=0
Connection: keep-alive
1.请求行
- 请求行中的请求方式:get/post
- GET:请求能够携带的参数比较少,大小有限制,会在浏览器的url地址栏显示数据内容,不安全,但高效
- POST:请求能够携带的参数无限制,大小无限制,不会在浏览器的url地址栏显示数据内容,安全,但不高效
2.消息头
Accept: text/html : 告诉浏览器所支持的数据类型
Accept-Encoding: gzip, deflate, br : 支持的编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 : 支持的语言
Cache-Control: max-age=0 : 缓存的控制
Connection: keep-alive : 告诉浏览器请求完成后是断开还是保持连接
4.4 http响应
- 客户端 <---- 返回响应 <---- 服务器
以百度为例:
Cache-Control: private 缓存控制
Connection: keep-alive 连接
Content-Encoding: gzip 编码
Content-Type: text/html;charset=utf-8 类型
1.响应体
Accept: text/html : 告诉浏览器所支持的数据类型
Accept-Encoding: gzip, deflate, br : 支持的编码格式
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6 : 支持的语言
Cache-Control: max-age=0 : 缓存的控制
Connection: keep-alive : 告诉浏览器请求完成后是断开还是保持连接
Reflush: 设定多久刷新一次
Location 网页重定位
2.响应状态码
200:请求响应成功
3**:请求重定向
4**:Not Found
5**:服务器代码错误
- 502 :网关错误
上一篇: webPack 4.0的零基础学习