一、概述
1、基本概念
Web开发:
- web,网页的意思(www.baidu.com)
- 静态web
- html、css
- 提供给所有人看的数据始终不会发生变化!
- 动态web
- 提供给所有人看的数据始终发生变化,每个人在不同的时间不同地点看到的信息各不相同
- 淘宝等等网站
- 技术栈:Servlet/JSP、ASP、PHP
在Java中,动态web资源开发的技术统称为JavaWeb
2、web应用程序
web应用程序
可以提供浏览器访问的程序
- a.html、b.html…多个web资源,这些资源可以被外界访问,对外界提供服务
- 访问到的任何一个页面或者资源,都存在于某个计算机上
- URL
- 这些统一的web资源会被放在同一个文件夹下:web应用程序---->服务器
- 一个web应用由多部分组成
- html、css、js
- jsp、servlet
- Java程序
- jar包
- 配置文件(Properties)
web应用程序编写完毕后,若想提供给外界访问 ----> 需要一个服务器来统一管理
3、静态web
- *.htm、 *.html 这些都是网页的后缀,如果服务器上一直存在这些东西,就可以直接进行读取、通络
- 缺点:
- Web页面无法动态更新,所有用户看到的都是同一个页面
- 轮播图:伪动态
- JavaScript
- VBScript
- 无法与数据库交互(数据无法持久化、用户无法交互)
- Web页面无法动态更新,所有用户看到的都是同一个页面
4、动态web
页面可以动态展示: web的页面展示的效果因人而异
缺点:
- 若服务器的动态web资源出现错误,则需要重新编写后的程序并重新发布
- 停机维护
优点:
-
Web页面可以动态更新,所有用户看到的都不是同一个页面
-
可以与数据库交互(数据持久化)
二、web服务器
1、技术
ASP:
- 微软:国内最早流行的
- 在HTML中你那个嵌入了VB的脚本
- 在ASP开发中,页面混乱
- 维护成本高
- C#语言
PHP:
- 开发速度快、功能强大、跨平台、代码简单
- 无法承载大访问量的情况
JSP/Servlet:
B/S:浏览和服务器
C/S:客户端和服务器
- sun公司主推的B/S架构
- 基于Java语言
- 可以承载三高(高并发、高可用、高性能)带来的影响
- 语法像ASP ASP—>JSP
2、web服务器
服务器是一种被动的操作,用来处理用户的一些请求和给用户的一些响应
Tomcat
- Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器
- 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
- Tomcat 技术先进、性能稳定,而且免费
三、Http
1、什么是HTTP
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。
- 文本:html、字符串…
- 超文本:图片、音乐、视频、定位、地图…
- 80
Https: 安全
2、两个时代
- http1.0
- HTTP/1.0 : 客户端可以与web服务器连接后,只能获得一个web资源,断开连接
- http2.0
- HTTP/1.1 : 客户端可以与web服务器连接后,可以获得多个web资源
3、http请求
客户端----发请求(Request)----服务器
百度:
Request URL: https://www.baidu.com/ URL路径
Request Method: GET 方法
Status Code: 200 OK 状态码:200
Remote Address: 182.61.200.6:443 远程地址
Referrer Policy: no-referrer-when-downgrade 协议
请求行
- 请求行中的请求方式:GET
- 请求方式:GET、POST
- get: 请求能够携带的参数比较少、大小有限制,会在浏览器的URL地址栏显示数据内容,不安全但高效
- post: 请求能够携带的参数无限制,不会在浏览器的URL地址栏显示数据内容,安全但不高效
消息头
Accept: image/webp,image/apng,image/*,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Connection: keep-alive
- Accept: 告诉浏览器,它所支持的数据类型
- Accept-Encoding: 支持哪种编码格式
- Accept-Language:语言环境
- Connection:请求完成时断开还是保持连接
4、http响应
服务器----响应----客户端
百度:
Cache-Control: private 缓存控制
Connection: keep-alive 连接
Content-Length: 36
Content-Type: text/html;charset=utf-8 类型
Date: Mon, 08 Mar 2021 02:50:42 GMT
Expires: Mon, 08 Mar 2021 02:50:42 GMT
Server: BWS/1.0
Vary: Accept-Encoding
响应体
Cache-Control: private
Connection: keep-alive
Content-Length: 36
Content-Type: text/html;charset=utf-8
Date: Tue, 09 Mar 2021 01:09:04 GMT
Expires: Tue, 09 Mar 2021 01:09:04 GMT
Server: BWS/1.0
Vary: Accept-Encoding
相应状态码
-
200:请求响应成功
-
3XX:请求重定向
- 重定向:重新到新位置
-
4XX:找不到资源 404
- 资源不存在
-
5XX:服务器代码错误 500 502(网关错误) 503
四、Maven
在javaweb开发中,需要大量的jar包,手动去导入(这谁顶得住呀)
如何能够让一个东西自动帮我们导入和配置这个jar包 ----> Maven
1、Maven项目架构管理工具
目前使用Maven就是便于导入jar包
Maven核心思想: 约定大于配置
- 有约束,不要去违反
Maven规定好如何去编写Java代码,必须按照这个规范操作
2、下载与配置
官网:https://maven.apache.org
参考文章:https://blog.csdn.net/qq_45366447/article/details/109756324