一:主要内容
1.B/S和C/S架构
(1)C/S架构
客户端/服务器架构,简称C/S架构,两层架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端主流有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据;另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信。
优点:C/S架构的界面和操作可以很丰富;安全性能可以很容易保证,实现多层认证也不难;由于链路简单,因此响应速度较快。
缺点:适用面窄,通常用于局域网中;用户群固定;维护成本高,发生一次升级,则所有客户端的程序都需要改变。
(2)B/S架构
浏览器-服务器(Browser/Server)架构,简称B/S架构。只需要浏览器即可,浏览器与Web服务器交互,Web服务器与后端数据库进行交互,可以方便地在不同平台下工作。
优点:客户端无需安装,有浏览器即可;B/S架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强;维护简单便利,BS架构无需升级多个客户端,升级服务器即可。
缺点:表现要达到CS程序的程度需要花费不少精力;在速度和安全性上需要花费巨大的设计成本。
2.Java SE,Java EE,Java ME,Jakarta EE区别
(1)Java SE是Java的标准版本
包含标准的VM和标准库,是三个平台的核心,为Java EE和Java ME提供基础;用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java程序。
(2)Java EE是Java的企业版本
加入了大量的API和库,如JDBC、JNDI、EJB、Servlet、JSP等;主要用于写web应用。
(3)Java ME是Java的微型版本
主要用于写移动应用
3.Web发展
(1)静态网页
静态网站只能够根据用户的请求返回指向的网页,除了进行超链接跳转,没办法实现任何交互。
(2)JavaScript
网页有了一些简单交互
(3)CSS
(4)动态网页技术
动态网页实现了内容的动态展示、丰富的用户交互。
缺点:网页总是刷新,网页和后端逻辑混合,有大量重复代码无法复用。
(5)AJAX
AJAX指异步的JavaScript和XML,Ajax其实就是浏览器与服务器之间的一种异步通信方式。
(6)SPA
前端为了寻求良好的可维护性和可复用性,出现了三大前端框架::Vue、React、AngularJS。后端不再负责模板渲染,前端和APP开始对等,后端的API也可以通用化了。前后端终于得以分离。
出现的问题:
请求网页后白屏时间比传统网页要长;
爬虫爬到的是空白页面,没办法做SEO;
在业务复杂的情况下,请求文件很大,渲染非常慢。
(7)Server Side Render
即服务器渲染,SSR会利用已经“脱水”的首屏数据来渲染首屏页面返回给客户端,到了浏览器再注入浏览器事件,并且保留单页应用的能力,对SEO非常友好。但学习成本高,限制较多。
4.JavaWeb发展
(1)model1/model2/三层模型进行开发
model1它适合小型web项目,开发成本低;
Model2的开发模式是:Jsp+Servlet+JavaBean的模式,增加了Servlet,将页面控制,调用业务逻辑等工作放到了Servlet中处理,从而减轻了Jsp的工作负担;
三层架构分别为)表示层,JSP/Servlet;业务逻辑层:业务规则; 持久化层:主要包装持久化的逻辑。
(2)使用EJB进行分布式应用开发
EJB是运行在独立服务器上的组件,客户端是通过网络对EJB 对象进行调用的。
(3)使用Spring
(4)使用Spring Boot
Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮。使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,一定意义上,可以说是解放了程序员的劳动力,一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标。
(5)SpringCloud微服务、无服务
SpringCloud就是面向微服务的开发框架。
5.浏览器从输入域名开始访问的整个过程
(1)输入网址
(2)DNS解析获取域名对应的IP地址
(3)建立TCP连接
(4)web浏览器向web服务器发送HTTP请求
(5)服务器的永久重定向响应
(6)浏览器跟踪重定向地址
(7)web服务器做出应答
(8)浏览器显示 HTML
(9)浏览器发送请求获取其他嵌入在 HTML 中的资源
(10)web服务器关闭TCP连接
二:问题汇总
1.什么是JavaBean?
JavaBean是一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去。所有遵循一定编程原则的Java类都可以被称作JavaBean。JavaBean的特点是具有无参构造函数,属性私有,提供getter和setter方法,实现序列化接口等。JavaBean可以被用于各种应用程序中,例如Web应用程序、桌面应用程序等。JavaBean的优点是可以提高代码的重用性和可维护性,使得程序更加模块化和易于扩展。
2.无服务架构是为了解决什么问题?
总的来说,无服务器架构是为了解决开发者在构建和运行应用程序时面临的挑战,包括降低运营成本、提高可扩展性、增强可靠性和保障安全性。
3.为什么域名要解析成IP?
域名解析成IP地址是为了实现方便用户记忆和访问、提高访问速度、负载均衡、实现多种网络服务和安全性等多种目的。
4.如何修改nginx的首页内容?
找到nginx的配置文件——>定位到server块——>定位到index指令——>修改index指令的值——>保存并关闭文件——>重启nginx服务
5.浏览器普通刷新和ctrl+f5刷新有什么区别?为什么普通刷新fiddler抓包中响应的内容是空的?
普通刷新:通常,当我们点击浏览器的刷新按钮或使用快捷键F5时,浏览器会尝试从服务器获取当前页面的最新版本。这种刷新方式是“智能刷新”,即浏览器会检查缓存的版本是否是最新的,如果是,则不进行任何操作;如果不是,就向服务器发送请求获取最新的页面内容。因此,普通刷新不一定总能获取到服务器的最新内容。
Ctrl+F5刷新:Ctrl+F5刷新是“强制刷新”,即忽略浏览器的缓存,直接从服务器加载页面。无论缓存的版本是否是最新的,都会向服务器发送请求获取最新的页面内容。因此,Ctrl+F5刷新通常可以确保获取到服务器的最新内容。
关于普通刷新时Fiddler抓包中响应内容为空的问题,这可能是因为浏览器在普通刷新时使用了缓存。当浏览器检查到缓存的版本是最新的时,它不会向服务器发送请求,因此Fiddler也就没有抓到任何响应包。要解决这个问题,可以尝试使用Ctrl+F5强制刷新,或者清除浏览器的缓存和临时文件后再进行刷新。
6.http除了GET请求,还有哪几种请求方式?有什么区别?
HTTP除了GET请求,还有8种请求方式,包括POST、PUT、PATCH、DELETE、HEAD、OPTIONS、CONNECT和TRACE。
以下是这些请求方式的主要区别:
(1)POST请求:用于向指定资源提交数据,数据包含在请求体中。POST请求是HTTP请求中使用最多的一种请求方式。
(2)GET请求:用于请求指定的页面信息,并返回实体内容。GET请求的数据会附在URL之后。
(3)PUT请求:从客户端向服务器传送的数据取代指定的内容,即向指定的位置上传最新的内容。
(4)DELETE请求:请求服务器删除Request-URL所标识的资源。
HEAD请求:类似于GET请求,只不过返回的响应体中没有具体内容,只有报文头,用于获取报文头。
(5)PATCH请求:对PUT方法的补充,用来对已知资源进行局部更新。
(6)OPTIONS请求:用于获取目标资源的通信选项。
(7)CONNECT请求:用于建立网络连接以供隧道传输。
(8)TRACE请求:用于进行消息路由跟踪。
7.为什么说https比http安全?
HTTPS比HTTP安全,主要是因为HTTPS采用了SSL/TLS协议对传输的数据进行加密,使得黑客无法直接获取数据内容。即使攻击者截获了加密后的数据包,也无法破解其中的内容。此外,HTTPS协议需要域名所有者通过CA机构进行认证和签发数字证书,可以验证网站的真实性和可信度。用户在访问HTTPS网站时可以看到浏览器地址栏中的“锁”图标,代表该网站经过身份验证,确保用户与正确的网站建立加密连接。因此,HTTPS协议可以防止中间人攻击,保障用户与目标服务器建立的连接是加密且安全的,避免了这种攻击方式。相比之下,HTTP在传输数据时没有加密,因此数据可能会被黑客攻击或拦截。
8.http和https的区别
HTTP和HTTPS的区别主要体现在以下四个方面:
(1)协议传输方式:HTTPS是具有安全性的SSL加密传输协议,而HTTP是超文本传输协议,信息是明文传输。
(2)连接方式与端口:HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样。HTTP是80,HTTPS是443。
(3)安全性:HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
(4)证书与费用:HTTPS协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。