閱讀本章,對體會比較深刻的句子做一個記錄。很早就開始讀了,但是只是零碎的思考和批注。從此以后,閱讀的技術(shù)書籍都要寫博客。
title: 2018-2-27《深入理解計算機系統(tǒng)》
tags: 服務(wù)器編程
十一章,網(wǎng)絡(luò)編程
所有的網(wǎng)絡(luò)模型都是基于相同的基本編程模型,有相似的邏輯結(jié)構(gòu),依賴相同的編程接口。
客戶端-服務(wù)器編程模型:一個服務(wù)器進程和一到多個客戶端進程組成。服務(wù)器管理某種資源,并且通過操作某種資源為客戶端提供某種服務(wù)。
客戶端處理的基本信息是事務(wù)。和數(shù)據(jù)庫事務(wù)有什么區(qū)別呢?
以太網(wǎng)的每個主機都能看到其他。網(wǎng)段能保證網(wǎng)橋不會丟失同一個網(wǎng)段的幀。幀頭的作用是尋址到路由器。因此,不同網(wǎng)段的幀的幀頭是不一樣的。TCP是提供了進程間的可靠的全雙工的連接。
網(wǎng)絡(luò)字節(jié)序是大端字節(jié)序。
gethostbyname 函數(shù)返回和域名name相關(guān)的主機條目。gethostbyaddr函數(shù)返回和IP地址相關(guān)的主機條目。是從DNS數(shù)據(jù)庫中檢索的主機條目。
hostname可以確定本地主機的實際域名。
etc/services 查看固定的服務(wù)應(yīng)用。
只有在一端close的時候,另外的一端才會接受到結(jié)束的字符?
從linux內(nèi)核的角度來看,一個套接字就是一個通信的端點。從unix的程序上來看,一個套接字就是有相應(yīng)描述符的文件。
套接字有各種類型,英特網(wǎng)的套接字類型有后綴_in.有一個通用的套接字類型。也有一個因特網(wǎng)的套接字類型。這些套接字和I/O函數(shù)一起,構(gòu)成一些網(wǎng)絡(luò)應(yīng)用。
監(jiān)聽描述符:它被創(chuàng)建一次,并存在與服務(wù)器的整個生命周期。
connect連接建立起來之后,就返回了。如果有上萬個連接,一臺服務(wù)器是怎么處理的?
EOF條件,并不是字符。
本章中的echo服務(wù)器的主程序。
HTML的強大之處,是可以包含指針。就是所謂的萬維網(wǎng)。
萬維網(wǎng)的最開始的那個'/',不是Unix目錄。相反,它是內(nèi)容類型的主目錄。
重點是服務(wù)的動態(tài)內(nèi)容。CGI通用網(wǎng)關(guān)接口。
有四個過程:
1,客戶端怎么把程序參數(shù)傳遞給服務(wù)器。
2,服務(wù)器如何將參數(shù)傳遞給子進程。
3,服務(wù)器如何將其他信息傳遞給子進程。大量的環(huán)境變量
4,子進程將它的輸出發(fā)送到哪里?子進程加載CGI程序之前把標準輸出重定向到和客戶端相關(guān)聯(lián)的描述符。