後台開發 核心技術與應用實踐

2021-09-24 02:07:15 字數 2735 閱讀 3994

常用類庫

在c++中,臨時物件都是const型別的。

可以使用union(聯合)判斷系統是大端(big endian)還是little endian(小端)。

只能把列舉賦值列舉變數,不能把元素的數值直接賦值列舉變數。

共用體以最長的位元組為準,考慮記憶體對齊。

結構體以內建型別的最小公倍數對齊。

編譯階段: g++會呼叫gcc, 通過g++來完成鏈結。

makefile有3個內部變數:

gdb命令引數:

多執行緒使用了執行緒不安全的函式。

多執行緒讀寫的資料未加鎖保護。

非法指標,包括使用空指標或隨意使用指標轉換。

堆疊溢位。

tcp狀態圖:

當出現資料報中途丟失、ack報文中途丟失、對端異常未響應ack或被對段丟棄,tcp會超時重傳。

tcp的滑動視窗主要有兩個作用:

任何時候在其傳送快取內的資料都可以分為4類:

'已經傳送但未收到對端ack的』和』未傳送但對端允許傳送的』這兩部分資料稱之為傳送視窗。

tcp擁塞控制:

擁塞避免(congession voidance);

快速重傳(fast restransmit);

快速恢復(fast recovery).

擁塞視窗的大小取決於網路的擁塞成都,並且動態地變化。

傳送方讓自己的傳送視窗等於擁塞視窗,考慮接收方的接收能力,傳送串列埠可能小於擁塞視窗。

tcp中的nagle演算法預設是啟用的,但它並不適合任何情況。

tcp是個流協議,就是沒有界限的一串資料(沒有分界線)。

連續呼叫send分別傳送兩段資料data1和data2:

先接收到data1的全部資料和data2的部分資料, 然後接收到data2的餘下資料。 — 粘包

一次性接收到了data1和data2的全部資料。 — 粘包

一般來說,乙個埠釋放後要等待兩分鐘左右後才能再被使用,而so_reuseaddr則可以讓埠釋放後立即就可以再被使用。

tcp_defer_accept可以用來預防空連線攻擊(只是建立連線,但是不傳送任何資料).

so_linger, linger是延遲的意思。

so_rcvbuf和so——sndbuf這兩個介面選項可以改變預設換從去大小。

4種網路io模型:

非阻塞io模型;

多路io復用模型;

非同步io模型。

tcpdump根據使用者的定義對網路上的資料報進行擷取和分析。

netstat命令用於顯示與ip, tcp, udp, imcp相關的統計資料,一般用於檢驗本機各埠的網路連線情況。

lsof(list open file)是乙個列出當前系統開啟檔案的工具。

所謂程式就是可執行的二進位制檔案,把這種檔案載入到記憶體中執行就二道了乙個程序。

守護程序:

建立乙個守護程序的簡單步驟:

ipcs命令:

一次http操作稱為乙個事務,其工作可分為4步:

伺服器接到請求後,給予相應的響應資訊,其格式為乙個狀態行:

客戶端接收伺服器所返回的資訊通過瀏覽器顯示在使用者的顯示屏上,然後客戶機與伺服器斷開連線。

http永遠是客戶機發起請求,伺服器惠東響應,伺服器無法將訊息推送給客戶端。

http協議結構,無論是請求報文還是回應報文,都分為四個部分:

http是基於行的協議,每一行以\r\n作為分隔符。

wireshark是乙個抓包的好工具,它能夠記錄計算機和網際網路之間的通訊內容。

http請求方法:

get: 向特定的資源發出請求,get可能會被網路爬蟲隨意訪問。

post: 向指定資源提交資料進行處理請求(提交表單或者上傳檔案)。

put: 向指定資源位置上傳其最新的內容。

delete: 請求伺服器刪除request-uri所標識的資源。

trace: 回顯伺服器收到的請求,主要用於測試或診斷。

connect: 協議中預留給能夠將連線更改為管道方式的**伺服器。

patch: 用來將區域性修改應用與某以資源。

當某個請求所針對的資源不支援對應的請求方法時,伺服器應當返回狀態碼405(method not allowed).

當伺服器不認識或者不支援對應的請求方法時,應當返回狀態碼501(not implemented).

http伺服器至少要實現get和head方法。

https協議

非對稱加密: 加密的金鑰和解密的金鑰是不一樣的,金鑰成對出現(公鑰加密需要私鑰解密,私鑰加密需要公鑰解密)。

http協議可以輕鬆抓包並獲得其中的內容,是乙個不安全的協議,而https(hypertext transfer protocol over secure socket layer)則是以安全為目標的http通道,可以簡單的理解為http的安全版。

https是乙個uri scheme(抽象識別符號體系),句法類同http體系,用於安全的http資料傳輸。

但https的存在不同於http的預設埠及乙個加密/身份驗證層(在http與tcp之間)。

高層的應用協議能透明地建立於tls協議之上。

http和https的區別:

cgi

protobuf:

《後台開發核心技術與應用實踐》(一)

物件導向的c 後台開發核心技術與應用實踐 徐曉鑫 的學習筆記。後台開發技術能力體系,自省!後者先搜尋當前目錄,再搜尋標準頭檔案目錄 1 strlen 是函式,在執行時才能計算。引數必須是字元型指標 char 且必須是以 0 結尾的。當陣列名作為引數傳入時,實際上陣列已經退化為指標了。它的功能是返回字...

後台開發 核心技術與應用實踐1 2 函式

1.2 函式 1.函式的定義 乙個c程式是由若干個函式組成的,c語言被認為是面向函式的語言,而c 面向過程的程式設計也沿用了c語言使用函式的方法。在c 物件導向的程式設計中,主函式以外的函式大多是被封裝在類中的。主函式或其他函式可以通過類物件呼叫類中的函式。無論是c還是c 程式中的各項操作基本上都是...

後台開發 核心技術與應用實踐1 7 預處理

1.7 預處理 c 提供的預處理功能主要有以下4種 巨集定義 檔案包含 條件編譯和布局控制。檔案包含在前面已描述過,下面重點描述巨集定義 條件編譯和布局控制,其中又著重講述常用巨集定義命令 do while 0 的妙用 條件編譯及extern c 塊的應用知識。1.常用巨集定義命令 def?ine命...