後端開發
- 什麼是websocket
http是一種單項協議,也就是客戶端和伺服器只有一方能主動傳送資料,而websocket是一種雙向協議,可以實現伺服器和客戶端的實時通訊,避免要傳送很多次http請求才能獲取資料。
原理:客戶端傳送一個http請求建立連線,伺服器返回確認訊息,然後透過這個連線建立通訊
- session、cookie、token的區別
session是一種會話,儲存在服務端,針對於選項卡,關閉瀏覽器或選項卡會話失效。
cookie:產生在伺服器端,儲存在客戶端,節省伺服器控制元件,可以理解為快取資料,比如使用者名稱、密碼等
token:令牌,比如使用ssh,就要接受儲存token,一般用來做授權、校驗。
安全性:session>cookie
-
什麼是sessionStorage
-
手機測試流程
-
自動化測試環境搭建
-
appium怎麼搭建
- 安裝jdk、appium sdk、appium gui
2.pip install appium-python-client
3.連線真機: 手機開啟usb除錯;連線模擬器:開啟開發者模式;
4.輸入adb devices
5.啟動appium inspector
6.配置appium server
3.1 wifi連線真機:手機與PC同一網段;檢視手機ip;adb connect ip:埠號;adb devices
埠號:adb devices獲取裝置號;adb -s 裝置號 tcpip
https://blog.51cto.com/u_15354476/5342062
- python資料物件有幾種?區別是什麼?什麼是可變序列和不可變序列?
可變: 列表list、字典dict、集合Set
不可變: 數字、str、tuple
區別:建立後能否被修改
-
django、flask的區別是什麼?
-
除了django、flask還有哪些開發框架?
tornado\fastapi
-
介紹一下scrapy
-
如何部署web專案?
見另一篇文章
- monogb的介紹和操作
-
介紹django、flask、django的中介軟體是什麼
-
python的深複製和淺複製
當原物件發生改變時,會跟著改變,深複製不會改變
import copy
# 父物件
original = [1, 2, [3, 4]]
# 淺複製
shallow_copy = copy.copy(original)
# 修改父物件中的一個子列表
original[2][0] = "changed"
print(original) # 輸出: [1, 2, ['changed', 4]]
print(shallow_copy) # 輸出: [1, 2, ['changed', 4]]
import copy
# 父物件
original = [1, 2, [3, 4]]
# 深複製
deep_copy = copy.deepcopy(original)
# 修改父物件中的一個子列表
original[2][0] = "changed"
print(original) # 輸出: [1, 2, ['changed', 4]]
print(deep_copy) # 輸出: [1, 2, [3, 4]]
- GIL是什麼,為什麼會有GIL,去掉會怎樣,有了GIL為什麼還要給程式加鎖?
GIL:全域性解釋鎖Global Interpreter Lock
Python最初的設計理念在於,為了解決多執行緒之間資料完整性和狀態同步的問題,設計為在任意時刻只有一個執行緒在直譯器中執行。而當執行多執行緒程式時,由GIL來控制同一時刻只有一個執行緒能夠執行。即Python中的多執行緒是表面多執行緒,也可以理解為fake多執行緒,不是真正的多執行緒。
https://www.cnblogs.com/ArsenalfanInECNU/p/9968621.html
GIL是為了保證直譯器的執行緒安全,而互斥鎖是保證共享資源的執行緒安全;在多執行緒下,即使有GIL的存在,如果不使用互斥鎖,還是會出現資源競爭的問題
-
python的修飾器
-
pandas和numpy 的面試題
-
爬蟲相關面試題
-
什麼是WSGI(web server gatewat interface)
-
redis管道技術pipline
pipline可以將多條馬明亮一次性傳送到伺服器,只要花費一次網路來回開銷,提高服務效能
-
什麼是resfulapi
-
如何使用flask設計api
-
LDA
隱含狄利克雷分佈,是一種詞袋模型,他認為一篇文件是由一組詞構成的集合,詞之間沒有任何關係,將文件中每篇主題按照機率分佈給出