Web应用项目开发

 一,什么是Web应用程序

         1,Web应用程序的定义

                    Web应用程序是一种可以通过Web访问的应用程序。Web应用程序的一个最大好处是用户可以很容易访问应用程序。用户只需要有浏览器即可,不需要再安装其他软件。

          2,典型的三种Web应用程序

                   桌面应用程序(QQ,Office)

                   Web应用程序(京东,天猫)

                   嵌入式应用程序(安卓,iphone)

二、开发环境配置

1.下载JDK

  • JDK是Java Development Kit的缩写,,即中文Java开发工具。
  • 它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境(JRE),以及常用的Java类库等。
  • 进入官网下载点击这里

2.配置Java环境变量

(1).在系统变量中新建一个JAVA_HOME变量,将安装在电脑中的JDK的bin目录路径赋值给该变量

(2)Intellij IDEA安装
傻瓜式安装,完成后在“文件→设置→插件”中搜索①Alibaba Java Code Guidelines②Gitee并安装

(3)克隆项目
①Fork教学项目
②在非中文目录下clone项目“git clone https://gitee.com/xxx/api-practices.git”

(4)安装mysql-installer-community-8.0.22.0
①仅安装Server即可(Server only)
②检测安装,可能会有一些依赖安装,按提示安装即可
③安装完会有配置,其中密码验证方式,必须选择传统验证(Legacy),强密码方式navicat无法连接
④root根用户密码要牢记,开发环境建议使用123456或654321,生产环境不要使用易于猜测的密码
⑤其他配置一般按默认即可
参考:https://www.modb.pro/db/53520

(5)安装Navicat,并打补丁
①安装完成后打开navicat,点击连接输入root用户密码并连接到mysql
②创建practices数据库。字符集utf8 -- UTF-8 Unicode,排序utf8_bin

(6)接口测试工具
①一般的接口测试,请在Edge或Chrome上安装postwoman插件
②涉及到文件上传,需要安装和使用postman应用
③要测试接口需要提交复杂json作为参数时,可使用>>>在线json编辑器<<<

yml文件:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/practices?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root

  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true


server:
  port: 8081

三、搭建项目框架

RESTful API项目开发流程:

需求分析和设计:明确API的功能和需求,定义API的资源、路由和数据结构。这一阶段需要与项目团队以及相关利益相关者进行沟通和讨论,确保对API的需求有一个清晰的理解。

选择合适的技术栈:选择适合项目需求的开发框架和工具,例如Node.js、Express.js、Django等。考虑到性能、安全性、可扩展性等方面的因素。

数据库设计和建模:根据API的需求,设计和规划数据库结构,包括表、字段、关系等。选择适合项目的数据库类型和存储方案,如MySQL、MongoDB等。

项目初始化和配置:创建项目目录结构,配置开发环境,安装所需的依赖包和库。设置数据库连接、身份验证等相关配置。

编写API路由和控制器:根据设计的API路由,编写相应的路由处理程序,负责处理请求、验证参数、调用逻辑处理等。在控制器中实现业务逻辑,并返回响应结果。

编写单元测试:为API编写单元测试,覆盖各种场景和边界情况。检查API的功能和性能,确保代码的质量和可靠性。

身份验证和授权:根据需求,实现用户身份验证和授权机制,保护API的安全性。常见的方式包括使用JSON Web Token(JWT)、OAuth等。

异常处理和错误处理:处理API请求中的异常和错误情况,返回合适的错误码和错误信息。确保API的健壮性和用户友好性。

文档编写和API测试:编写详细的API文档,描述API的使用方法、参数、请求和响应格式等。进行API的测试,验证API的正确性和可用性。

部署和发布:将API部署到生产环境中,配置服务器环境和域名。确保API的稳定性和高可用性。

监控和优化:监控API的运行状态和性能指标,及时发现和解决潜在问题。根据需求进行API的性能优化和调整,提升API的响应速度和吞吐量。

四,Web程序三层架构

专业解释:

       1. 表示层(UI,在Eclipse中是jsp) :主要是指与用户交互的界面,用于接收用户输入的数据和显示处理后用户需要的数据 
        2.业务逻辑层(BIZ):表示层和数据库访问层之间的桥梁,实现业务逻辑,具体包含:验证、计算、业务规则等等
        3.数据访问层(DAO):与数据库打交道,主要实现对数据的增、删、改、查

通俗理解:
  1. 表示层(UI,在Eclipse中是jsp) :给别人做显示:服务员 
  2. 业务逻辑层(BIZ):针对数据进行加工:厨师 
  3. 数据访问层(DAO):从数据库中拿数据:采购员、仓库(数据库)管理员

 

图注释: 

顾客 :相当于客户端
服务员 :展示餐厅的菜品(展示数据),相当于表示层
厨师 :处理食材(处理数据),相当于逻辑处理层
采购员 :收购食材(获取数据),相当于数据访问层

 

五、Web安全基础知识


  1.http协议


        ​ 超文本传输协议是互联网上应用最广泛的一种网络协议。所有www文件都必须遵守的一个标准,是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范,简单点说就是一种固定的通讯规则。

2.网络三种架构及特点


网络应用程序架构包括三种:

1、客户机/服务器结构(C/S)
2、浏览器/服务器结构(B/S)
3、P2P结构


C/S架构

需要安装特定的客户端程序
针对不同平台开发不同版本
升级应用需重新安装
能够直接使用客户端硬件资源

B/S架构

客户端无需安装,有Web浏览器即可
跨平台能力
无缝升级,客户端免维护

P2P架构

点到点系统,不需要服务器中转,客户端与客户端彼此直接通信

3. Web应用的特点


应用是图形化和易于导航的,能够在页面显示色彩丰富的图形和文本。
应用与平台无关,可以使用任何平台通过internet访问。
Web应用是分布式的,不同的信息可以放在不同的站点上。
Web应用是动态的,web站点的信息包含站点本身的信息,信息的提供者也可以对网站的信息进行更新。

4.URL组成


Protocol:指定使用的传输协议
hostname:主机名
port:端口号
path:路径
parameters:参数

query:可选,用于给动态网页传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。

fragment:信息片段,字符串,用于指定网络资源中的片断。

5.Http协议的性质


HTTP是简单的
HTTP是可扩展的
HTTP是无状态,有会话的
HTTP是可靠的

6.请求响应报文的格式


HTTP请求报文分为三部分

请求行 请求方法、URL、协议版本等(消息报头)
请求头 由一个头域名、冒号和值域组成
请求体
响应

响应行 协议和状态码 状态码分类
响应头
响应体

7.请求方法


GET POST OPTIONS HEAD PUT DELETE TRACE CONNECT

8.http缓存


缓存是一种保存资源副本并在下次请求时直接使用该副本的技术。当 web 缓存发现请求的资源已经被存储,它会拦截请求,返回该资源的拷贝,而不会去源服务器重新下载。这样带来的好处有:缓解服务器端压力,提升性能(获取资源的耗时更短了)。

9.缓存新鲜度如何判断


Web服务器通过2种方式来判断浏览器缓存是否是最新的
1、 Last-Modified和If-Modified-Since
2、 ETags和If-None-Match

10.Http重定向原理以及状态码


在 HTTP 协议中,重定向操作由服务器通过发送特殊的响应(即 redirects)而触发。HTTP 协议的重定向响应的状态码为 3xx 。浏览器在接收到重定向响应的时候,会采用该响应提供的新的 URL ,并立即进行加载;大多数情况下,除了会有一小部分性能损失之外,重定向操作对于用户来说是不可见的。

1XX 指示信息
2XX 请求发送成功
3XX 重定向
4XX 客户端发送的请求有语法错误
5XX 服务器错误

11.HTTPS协议 数字证书


HTTPS协议是以安全为目标的HTTP通道,其实就是HTTP的升级版本

    数字证书:是由权威的CA(Certificate Authority)机构给服务端进行颁发,CA机构通过服务端提供的相关信息生成证书,证书内容包含了持有人的相关信息,服务器的公钥,签署者签名信息(数字签名)等,最重要的是公钥在数字证书中。

12.HTTPS协议与HTTP协议的区别?


HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议。
HTTP采用80端口连接,而HTTPS则是443端口。
HTTPS协议需要到ca申请证书,一般免费证书很少,需要交费,也有些web容器提供,如TOMCAT。HTTP协议不需要。

13. Web客户端的作用


用来发送HTTP请求
接收服务器响应
把服务器返回的HTML代码渲染成界面Web客户端来主要是浏览器。

14.Web服务端作用


监听客户请求
处理客户端的简单请求(一般静态页面)
客户端与数据库之间的屏障
处理复杂系统的业务和数据库的访问

15.集群环境的作用


    集群环境:服务器集群是指将很多服务器集中起来去进行同一种服务。集群可以利用多个计算机并行计算从而获得很高的计算速度(负载均衡),也可以用多个计算机做备份,从而使得实现故障转移。

16.什么是Cookie,Cookie的作用。


Cookie: Cookie实际上是一小段的文本信息(key-value格式)。

客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。

17.Cookie 的类型


会话Cookie:保存在内存中,由浏览器维护,浏览器关闭后消失。
持久性Cookie:保存在硬盘里,有过期时间,用户手动清理或到了过期时间,持久性Cookie会被删除。
Expires属性:Cookie中的maxAge用来表示该属性,单位为秒。

18.session的作用和原理


在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。
Session的原理
用户第一次请求服务器时,服务器端会生成一个sessionId
服务器端将生成的sessionId返回给客户端,通过set-cookie
客户端收到sessionId会将它保存在Cookie中,当客户端再次访问服务端时会带上这个sessionId
当服务端再次接收到来自客户端的请求时,会先去检查是否存在sessionId,不存在就新建一个sessionId重复1,2的流程,如果存在就去遍历服务端的session文件,找到与这个sessionId相对应的文件,文件中的键值便是sessionId,值为当前用户的一些信息
此后的请求都会交换这个 sessionId ,进行有状态的会话
Session的两种实现方式(也就是传递方式)
通过Cookie实现
通过URL重写来实现
Session 与Cookie的区别
Cookie的数据保存在客户端浏览器,Session保存在服务器
服务端保存状态机制需要在客户端做标记,所以Session可能借助Cookie机制
Cookie通常用于客户端保存用户的登录状态
Session是可以存取任何类型的数据的,但是Cookie只能存入字符串
Cookie存储数据大小有限制,Session没有限制

19. Token的原理


用户通过用户名和密码发送请求。
程序验证。
程序返回一个签名的token给客户端。
客户端储存token,并且每次用于每次发送请求。
服务端验证token并返回数据。

20.数据的编码方式


url编码是一种浏览器用来打包表单输入的格式。

Base64就是一种用64个ASCII字符来表示任意二进制数据的方法。

MD5 为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。目前不可逆解。

21.Web测试的类型


界面测试:导航测试、图形测试、内容测试、整体界面测试、界面控件测试
功能测试:
性能测试
兼容性测试
安全性测试等 

22.H5优点


跨平台优势,H5页面在各个平台都适用,且可以在网页上直接进行调试和修改,开发和维护的成本较低,开发周期较短。
强化了Web网页的表现性能。除了可描绘二维图形外,还准备了用于播放视频和音频的标签。
追加了本地数据库等Web应用的功能。
H5营销的数据统计方便


23. APP测试/Web测试/H5测试的区别


相同之处
针对同一个系统功能的测试,三端所测的业务流程是一样的

一般情况下手机端和PC端都对应一套后台服务,也有一些功能,比如PC与手机端展示不一致,或者有什么特殊处理,这样情况下后台会写两套不同的接口来处理对应的业务需求

不同之处
测试平台(容器)不同
兼容性测试不同
系统架构不一样
发布流程不同
APP还有一些专项测试

24.移动端常用的三种开发模式


主要有原生APP(Native App)、混合APP(Hybrid App)、WEB APP三种.

  • 22
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卡匹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值