官方模板windows優(yōu)化工具
文章目錄
- 題目
今天給大家?guī)硪患姨崆芭鷾y試崗的真題,目前已經(jīng)發(fā)offer
題目
1.自我介紹
2.登錄頁面測試用例設計
3.如何模擬多用戶登錄
可以使用Jmeter,loadRunner性能測試工具來模擬大量用戶登錄操作去觀察一些參數(shù)變化
4.有使用過Jmeter,loadRunner做過性能壓測嗎?
簡單對項目進行過測試
5.談談你對SQL注入的理解,在什么情況下會發(fā)生
SQL注入是一種常見的安全漏洞攻擊,指的是通過在應用程序的輸入?yún)?shù)中插入惡意的SQL代碼,從而欺騙數(shù)據(jù)庫系統(tǒng)執(zhí)行非授權的操作。簡單介紹在Mybatis使用${}編寫SQL語句時發(fā)生SQL注入
select * from user username = '${username}' and password = '${password}'
我們只需要在密碼輸入框輸入
1'or'1=1'
就可以修改查詢條件從而達到登錄功能,建議在Mybatis中使用#{}傳遞參數(shù)
還了解過其他安全問題嗎?
HTTP明文傳輸,使用Fiddler抓包可以直接看到密碼
6.介紹項目(博客網(wǎng)站)
介紹背景:自己經(jīng)常喜歡學習后進行總結,一般都是記錄在CSDN,但也想要有一個自己的記錄平臺,于是就開發(fā)了一個博客網(wǎng)站,方便自己后期學習記錄
主要工作:后端開發(fā) + 項目測試
技術棧:SpringBoot + Mybatis + Redis + MySQL
主要實現(xiàn)功能:登錄功能(動態(tài)驗證碼),注冊(郵箱驗證),博客列表頁(所有用戶文章,支持分頁功能),個人文章頁(個人用戶文章),文章編輯頁(支持Markdown格式),文章增刪改功能,個人信息頁(修改頭像,昵稱,密碼)
7.介紹項目部署過程(詳細過程+Linux命令+出錯排查)
部署之前首先需要將數(shù)據(jù)庫相關配置信息更改為服務器數(shù)據(jù)庫的信息,將yml文件profile從dev改成prod的
- 首先介紹了下Servlet項目的部署過程(將war包放在webapps目錄下,啟動Tomcat)
- 在介紹下Spring項目的部署過程(nohup java -jar myblog.jar &)
默認端口是8080,如果被別的應用占用了,可以使用kill -9 8080 或者 修改下項目server-port
8.項目Redis用在哪里
主要用戶文章緩存(30分鐘的TTL),存儲郵箱驗證碼(2分鐘TTL),使用的是Spring提供的Redis,Spring-Data-Redis相關API
9.如何解決Cokkie和Token存儲的
Cookie和Token是在Web應用程序中常見的兩種身份驗證和會話管理機制。
我的項目中是使用的Cokkie,Token和JWT技術也是常見的會話技術,引入這個主要是因為HTTP是無狀態(tài)的,每次請求都是無狀態(tài)的,使用Cokkie和Session結合使用使HTTP變成有狀態(tài)的,當?shù)谝淮握埱蟮椒掌?#xff0c;服務器會創(chuàng)建一個Session并返回給瀏覽器一個JSessionId,后續(xù)請求都會在請求頭攜帶JSessionId
10.將一個表數(shù)據(jù)清空有哪幾種方式
一共有三種方式,分別是:drop,truncate,delete
drop:直接刪除表結構包括數(shù)據(jù)
drop table 表名
truncate:刪除表數(shù)據(jù)保留表結構,一次快速清空整個表,重置自增主鍵,無法回滾
truncate table 表名
delete:刪除表數(shù)據(jù)保留表結構,但是保留表結構和索引,可以在事務中進行回滾,支持條件刪除
delete from 表名 where 條件;
11.介紹常用Linux命令
ls:列出當前目錄下的文件
-a 全部
-l 列表
-h 顯示大小
pwd:顯示當前工作目錄
rm:刪除文件
mv:移動文件
cp:復制文件
touch:創(chuàng)建文件
cat:查看文件
echo:輸出文件
tail:查看文件尾部(默認10行)
head:查看文件首行(默認10行)
more:支持翻頁
mkdir:創(chuàng)建目錄
vi,vim:文件編譯
yum,rpm:包管理命令
top:查看CPU信息
free:查看內(nèi)存資源
ps:查看進程信息
ifconfig:查看ip信息
nestat:查看網(wǎng)絡信息
grep:過濾信息
|:管道符
which:查看命令
chmod:修改文件,文件夾權限
ping:檢查網(wǎng)絡是否連通
find:查看文件
su/sudo:切換用戶
clear或者ctrl + l :清空終端命令
wc:統(tǒng)計文件行數(shù),單詞信息
>: 追加符
12.ps常見跟什么參數(shù),aux分別代表什么
-aux 或者 -ef
a: 顯示所有用戶的進程,而不僅僅是當前用戶的進程。
u: 以詳細的格式顯示進程信息,包括用戶、進程ID(PID)、CPU使用率、內(nèi)存占用等。
x: 顯示沒有控制終端的進程。
13.對堆和棧的理解
堆是線程共有的可能會發(fā)生線程安全問題,棧是線程私有的
棧是一個FIFO的數(shù)據(jù)結構,主要存儲函數(shù)調(diào)用信息、局部變量、函數(shù)參數(shù)、返回值,可能會出現(xiàn)棧溢出
堆主要是用來存儲對象和數(shù)組,用戶不需要關注內(nèi)存管理和垃圾回收,這一塊是由JVM幫我們來管理的,堆也是我們JVM內(nèi)存中最大的一部分,我們可以通過 -xms -xmx調(diào)節(jié)。
需要我介紹一下垃圾回收相關內(nèi)容嗎?
面試官:這塊你掌握的還可以,先不介紹了
14.HTTP與HTTPS的區(qū)別,簽名是對稱加密還是非對稱加密
HTTP是明文傳輸不安全,HTTPS是在HTTP在TCP之間加了SSL/TLS安全協(xié)議,通過對稱加密,非對稱加密,數(shù)字證書來確保安全性,HTTP默認端口是8080,HTTPS是443
簽名是非對稱加密,服務器生成一對公鑰密鑰,將公鑰和數(shù)字證書傳輸給瀏覽器,瀏覽器用來驗證服務器信息,然后使用公鑰加對稱密鑰傳輸給服務器,主要是為了確保安全性,防止運營商劫持,后續(xù)使用對稱加密是為了考慮效率問題
15.輸入一個網(wǎng)址到頁面顯示出來的過程
輸入一個網(wǎng)站就是URL,首先URL有幾部分組成,協(xié)議+IP+端口(可省略,HTTP默認是8080)+路徑+參數(shù)(通過&間隔),URL對應服務器一個資源,但是IP一般比較難記,我們可能使用的是服務器的域名,瀏覽器會構建一個HTTP請求,但是TCP不識別域名,于是我們需要對域名進行解析,首先會查詢?yōu)g覽器緩存,然后去查看Host文件,如都沒有的話,再去請求本地DNS服務器,如果本地DNS服務器沒有再去請求根DNS服務器獲取該域名的權威DNS服務器,然后請求權威DNS服務器獲取IP地址。
通過DNS獲取到IP之后,瀏覽器通過調(diào)用Socket庫來委托操作系統(tǒng)的協(xié)議棧,HTTP是基于TCP的,首先會建立三次握手,生成TCP頭信息,包括源端口和目的端口,端口是為了定位服務器中唯一的進程,再去調(diào)用網(wǎng)絡層提供的服務IP頭封裝一個源地址IP和目標IP,再去調(diào)用網(wǎng)絡接口層封裝一個MAC地址和目標MAC地址,但是我們并不知道對方的MAC地址,那么就需要借助ARP協(xié)議幫我們找到路由器的MAC地址,ARP協(xié)議會幫我們在以太網(wǎng)中廣播去獲取IP,并將本次查詢存放在ARP緩存中,目前我們的網(wǎng)絡包只是存放在內(nèi)存中的一串二進制信息,無法發(fā)送,于是需要借助我們的網(wǎng)卡,將內(nèi)容復制到網(wǎng)卡的緩沖區(qū)中,加上起始幀分隔符和末尾加上校驗序列,并將數(shù)字信息轉化為電信號,然后交換機根據(jù)MAC地址查找MAC地址,將信號發(fā)送到相應端口,如果沒有查到那么就會給每個端口都會發(fā)送,經(jīng)過交換機到達路由器進行轉發(fā)達到服務器之后層層解析直到獲取到相應資源,生成HTTP響應返回給瀏覽器,如果是 HTML 文檔,則進入下一步; 否則,如果是圖片、CSS 文件、JavaScript 文件等資源,則瀏覽器會進行相應的渲染或執(zhí)行。