綠盟科技面經
綠盟科技面試python開發崗位,問的基礎挺多的。好幾天了前了,現在記得的問題總結一下。如下:
http1.1和http1.0的區別
htto1.0,每次請求和響應都需要建立一個單獨的連線,每次連線只是傳輸一個物件,嚴重影響客戶機和伺服器的效能。
http1.1支援持久連線,在一個TCP連線上可以傳送多個http請求和響應,減少了建立和關閉連線的消耗和延遲。
http1.1還通過增加更多的請求頭和響應頭來改進和擴充http1.0的功能。
在http1.1中增加host請求頭欄位後,實現了在一臺WEB伺服器上可以在同一個IP地址和埠號上使用不同的主機名來建立多個虛擬WEB站點。
http1.1的持續連線,也需要增加新的請求頭來幫助實現,例如,Connection請求頭的值為Keep-Alive時,客戶端通知伺服器返回本次請求結果後保持連線;Connection請求頭的值為close時,客戶端通知伺服器返回本次請求結果後關閉連線。
http1.1還有身份認證機制,許多web站點要求使用者提供一個使用者名稱一口令對才能訪問存放其伺服器中的文件,這種要求稱為身份認證。http提供特殊的狀態碼和頭部來幫助web站點執行身份認證。
http1.1支援檔案斷點續傳,http1.0每次傳送檔案都是從檔案頭開始,即0位元組處開始。
python中類的三大特性
封裝:根據職責將屬性和方法封裝到一個抽象的類中;
繼承:實現程式碼的重用,不需要重複編寫程式碼。子類擁有父類所有的屬性和方法。也可以重新寫父類方法;
多型:不同的物件呼叫相同的程式碼,產生不同的效果,提高程式碼的靈活性。
ORM
物件關係對映(Object Relational Mapping,簡稱ORM)模式是一種為了解決面向物件與關係資料庫存在的互不匹配的現象的技術。簡單來說,ORM是通過使用描述物件和資料庫之間對映的元資料,將程式中的物件自動持久化到關係資料庫中。
多程序和多執行緒的區別
程式:只是一組指令的有序集合,是計算機硬碟上的一些檔案,是“死的”
程序:具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的一個獨立單元,是“活的”
執行緒:是程序的一個實體,是CPU排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位。執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源,但是它可與同屬一個程序的其他的執行緒共享程序所擁有的全部資源
協程
協程是一種使用者態的輕量級執行緒,即協程是由使用者程式自己控制排程的。(gevent、yield)
資料庫優化
SQL語句優化
索引優化
加快取
讀寫分離
分割槽
就記得這麼多了~~