httpd整理

http協(xié)議:超文本傳輸協(xié)議

  • html:超文本標(biāo)記語言;

  • 應(yīng)用層協(xié)議格式:文本(http/sftp),二進(jìn)制(memcache)

  • http服務(wù)器程序:
    httpd
    Nginx
    lighttpd 輕量級(jí)

  • 應(yīng)用程序服務(wù)器:不僅能處理靜態(tài)資源已脓,還能處理動(dòng)態(tài)資源;
    IIS .net
    Tomcat jsp

  • http協(xié)議版本:
    HTTP/0.9 只支持GET方法
    HTTP/1.0 引入MIME,支持傳輸多媒體异袄;引入cache,支持更多的Method
    HTTP/1.1 增強(qiáng)了緩存玛臂,開始支持持久連接功能烤蜕;
    HTTP/2.0 借鑒了SPDY封孙,增強(qiáng)了性能;

MIME:多用途互聯(lián)網(wǎng)郵件擴(kuò)展讽营;Multipurpose Internet Mail Extension
主要作用:傳輸非文本格式的數(shù)據(jù)虎忌;
major/minor
HTML格式的文本:text/html
普通ASCII文本:text/plain
JPEG格式的圖片:image/jpeg

WEB資源的分類:

  • 靜態(tài)資源:圖片,txt文本橱鹏,css膜蠢,mp3,html
  • 動(dòng)態(tài)資源:客戶端請(qǐng)求的是程序文件莉兰,需要服務(wù)器端的應(yīng)用程序運(yùn)行后返回運(yùn)行的結(jié)果挑围;
    注意:一個(gè)站點(diǎn)由眾多的資源構(gòu)成,每個(gè)資源都需要單獨(dú)請(qǐng)求糖荒;

URL:唯一標(biāo)識(shí)服務(wù)器端某特定資源的存放位置杉辙;

  • 語法格式:scheme://server[:port]/path/to/source
    。 URI 統(tǒng)一資源標(biāo)識(shí)符捶朵;URL和URN(統(tǒng)一資源名)是URI的子集蜘矢;

  • httpd協(xié)議本事是無狀態(tài)的,無法永久存儲(chǔ)用戶的信息综看,所以引用了cookie和session機(jī)制
    品腹。Cookie:保存在客戶端;由服務(wù)器發(fā)送給客戶端寓搬,唯一標(biāo)識(shí)用戶的信息珍昨;
    。 胖cookie 信息量大句喷,可能會(huì)泄露用戶信息
    镣典。瘦cookie 僅記錄個(gè)人用戶信息

  • Session:保存在服務(wù)器端

一次完整的http請(qǐng)求過程:

1.接收客戶端的連接,如果不希望與這個(gè)客戶端建立連接唾琼,就直接關(guān)閉兄春;
2.接收來自客戶端的http請(qǐng)求;
3.處理請(qǐng)求:分析請(qǐng)求報(bào)文中的首部信息锡溯,并采取相應(yīng)的行動(dòng)赶舆;
4.訪問資源:發(fā)起系統(tǒng)調(diào)用,獲取請(qǐng)求的資源祭饭;
5.構(gòu)建http響應(yīng)報(bào)文并發(fā)送給客戶端芜茵;
6.記錄到日志文件中

并發(fā)響應(yīng)模型:(c10K問題)

1.單進(jìn)程i/o模型:啟動(dòng)一個(gè)進(jìn)程處理所有用戶的請(qǐng)求;
2.多進(jìn)程i/o模型:并行啟動(dòng)多個(gè)進(jìn)程倡蝙,每個(gè)進(jìn)程處理一個(gè)請(qǐng)求九串;
3.復(fù)用的i/o模型:
多線程模型:一個(gè)進(jìn)程產(chǎn)生多個(gè)線程,一個(gè)線程處理一個(gè)請(qǐng)求;
事件驅(qū)動(dòng)機(jī)制:一個(gè)進(jìn)程直接響應(yīng)n個(gè)請(qǐng)求猪钮;
4.復(fù)用的多進(jìn)程i/o模型:啟動(dòng)m個(gè)進(jìn)程品山,每個(gè)進(jìn)程生成n個(gè)線程;則烤低,響應(yīng)請(qǐng)求數(shù)量為m*n

  • http事務(wù):一次http事務(wù)=一次請(qǐng)求+一次響應(yīng)的過程肘交;

。 request報(bào)文首部:

    <method><URL><vsersion>
    <HEADERS>(name:value)
    
    
   <request body>

扑馁。 response報(bào)文首部:

<vsrsion><status><reson-phrase>
<HEADERS>


<body>
  • Method:
    GET,HEAD,POST,PUT,DELETE,TRACE(跟蹤資源經(jīng)過的代理服務(wù)器)涯呻,OPTIONS(返回服務(wù)器對(duì)資源支持使用的method)

  • status:
    。 1xx 信息類
    腻要。2xx 成功類
    魄懂。 3xx 重定向類;
    闯第。 4xx 客戶端錯(cuò)誤
    市栗。 5xx 服務(wù)器端錯(cuò)誤

  • 常用狀態(tài)瑪:
    。200 請(qǐng)求成功咳短;OK
    填帽。301 永久重定向;Moved Permanently
    咙好。302 臨時(shí)重定向篡腌;Found
    。304 請(qǐng)求資源未發(fā)生改變勾效;Not Modified
    嘹悼。401 輸入賬號(hào)密碼后才能訪問資源;Unauthorized
    层宫。403 請(qǐng)求被禁止杨伙;Forbidden
    。404 服務(wù)器找不到客戶端請(qǐng)求的資源萌腿;Not Found
    限匣。500 服務(wù)器內(nèi)部錯(cuò)誤;Internal Server Error
    毁菱。502 代理服務(wù)器從后端服務(wù)器收到一條偽響應(yīng);Bad Gateway
    米死。504 超時(shí)
    。499 Nginx自定義狀態(tài)碼贮庞;客戶端向Nginx服務(wù)器發(fā)請(qǐng)求峦筒,服務(wù)端還未處理完成,響應(yīng)還沒完成窗慎∥锱纾客戶端就主動(dòng)斷開了;

  • HEADER:
    通用首部:
    請(qǐng)求首部:
    條件式請(qǐng)求首部:IF-Modified-Since,If-None-Match
    響應(yīng)首部:
    實(shí)體首部:
    擴(kuò)展首部:

  • 通用首部:既可以用在請(qǐng)求報(bào)文中又可以用在響應(yīng)報(bào)文中
    Date:報(bào)文的創(chuàng)建時(shí)間
    Connection:連接方式,如keep-alive,Close
    Via:顯示報(bào)文經(jīng)過的中間節(jié)點(diǎn)
    Cache-Control:控制緩存的生效機(jī)制
    Pragma:兼容Http 1.0脯丝,緩存相關(guān)

  • 請(qǐng)求首部
    Accept:通知服務(wù)器自己可以接受的媒體類型
    Accept-Charset:可以接受的字符集
    Accept-Encoding:通知服務(wù)器自己接受的編碼格式,如gzip
    Accept-Language:接受的語言
    Client-IP:客戶端IP
    Host:請(qǐng)求的服務(wù)器名稱和端口號(hào)
    Referer:包含當(dāng)前正在請(qǐng)求資源的上一級(jí)資源
    User-Agent:客戶端代理

  • 條件式請(qǐng)求首部
    Expect 期望服務(wù)器端發(fā)送什么類型信息
    If-Modified-Since 自從指定的時(shí)間之后伏伐,請(qǐng)求的資源是否發(fā)生過修改
    If-Unmodfied-Since 自從指定的時(shí)間之后宠进,請(qǐng)求的資源是否沒有修改
    If-None-Match 緩存中存儲(chǔ)的文檔ETag標(biāo)簽是否與服務(wù)器端文檔Etag不匹配

  • 安全請(qǐng)求首部
    Authorization 向服務(wù)器發(fā)送認(rèn)證信息
    Cookie/Cookie2 客戶端向服務(wù)器發(fā)送Cookie

  • 代理請(qǐng)求首部
    Proxy-Authorization:向代理服務(wù)器認(rèn)證

  • 響應(yīng)首部:
    。信息性
    Age:響應(yīng)持續(xù)時(shí)長
    Server:服務(wù)器程序軟件名稱和版本

  • 協(xié)商首部:某資源有多種表示方法時(shí)使用
    Accept-Ranges:服務(wù)器可接受的請(qǐng)求范圍類型
    Vary:服務(wù)器查看的其他首部列表藐翎,服務(wù)器根據(jù)首部內(nèi)容挑選出最合適的資源版本發(fā)送給客戶端(當(dāng)代理服務(wù)器收到了客戶端的請(qǐng)求時(shí)候材蹬,如果請(qǐng)求首部字段的值與?Vary?的值相同,才會(huì)從代理服務(wù)器的緩存中返回請(qǐng)求吝镣,反之就會(huì)向源服務(wù)器重新發(fā)送請(qǐng)求)

  • 安全響應(yīng)首部
    Set-Cookie:向客戶端設(shè)置Cookie
    Set-Cookie2
    WWW-Authenticate:來自服務(wù)器的對(duì)客戶端的質(zhì)詢認(rèn)證表單

  • 實(shí)體首部
    堤器。 Allow 列出對(duì)此實(shí)體可使用的請(qǐng)求方法
    。 Location 告訴客戶端真正的實(shí)體位于何處
    末贾。Content-Encoding 內(nèi)容的編碼格式
    闸溃。Content-Language 內(nèi)容的使用語言
    。 Content-Length 主體的長度
    拱撵。 Content-Location 實(shí)體真正所處位置
    辉川。 Content-type 主體的對(duì)象類型

  • 緩存相關(guān)
    。 Etag 實(shí)體的擴(kuò)展標(biāo)簽
    拴测。 Expires 實(shí)體的過期時(shí)間
    乓旗。 Last-Modified 最后一次修改的時(shí)間

  • Web頁面:
    。一個(gè)頁面由多個(gè)資源組成集索;

屿愚。PV:page view 入口頁面被視為一個(gè)pv
。UV:user view 每個(gè)獨(dú)立的ip地址被視為一個(gè)uv务荆;

  • 認(rèn)證:
    妆距。基于ip認(rèn)證:
    函匕∫愫瘢基于用戶認(rèn)證:basic,digest

  • 資源映射:
    浦箱。 Alias
    吸耿。 DocumentRoot

  • httpd:MPM
    。prefork:一個(gè)主進(jìn)程酷窥,生成多個(gè)子進(jìn)程咽安,每個(gè)子進(jìn)程處理一個(gè)請(qǐng)求;
    蓬推。 worker:一個(gè)主進(jìn)程妆棒,生成多個(gè)子進(jìn)程,每個(gè)子進(jìn)程生成多個(gè)線程,每個(gè)線程處理一個(gè)請(qǐng)求糕珊;
    动分。 event:一個(gè)主進(jìn)程,生成多個(gè)子進(jìn)程红选,每個(gè)子進(jìn)程處理多個(gè)請(qǐng)求澜公;

  • I/O類型:

    • 同步和異步:
      --關(guān)注的是消息通知機(jī)制:被調(diào)用者的狀態(tài)
      。同步:調(diào)用發(fā)出之后不會(huì)立即返回喇肋,但一旦返回坟乾,則返回既是最終結(jié)果;
      蝶防。異步:調(diào)用發(fā)出之后甚侣,被調(diào)用方立即返回消息,但返回的并非是最終結(jié)果:被調(diào)用者通過狀態(tài)间学,通知機(jī)制等來通知調(diào)用者殷费,或通過回掉函數(shù)來處理結(jié)果;

    • 阻塞和非阻塞:block,nonblock
      -- 關(guān)注的是調(diào)用者等待被調(diào)用者返回調(diào)用結(jié)果使得狀態(tài)低葫;
      宗兼。 阻塞:調(diào)用結(jié)果返回之前,調(diào)用者會(huì)被掛起氮采;調(diào)用者只有在得到返回結(jié)果之后才能繼續(xù)殷绍;
      。非阻塞:調(diào)用者在結(jié)果返回之前鹊漠,不會(huì)被掛起主到,即調(diào)用不會(huì)阻塞調(diào)用者;

  • I/O模型:
    躯概。 blocking IO 阻塞式IO
    登钥。 nonblocking IO 非阻塞式I/O
    。 IO multiplexing 復(fù)用型IO
    娶靡。 signal dirven IO 事件驅(qū)動(dòng)式IO
    牧牢。 asynchronous IO 異步IO

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市姿锭,隨后出現(xiàn)的幾起案子塔鳍,更是在濱河造成了極大的恐慌,老刑警劉巖呻此,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轮纫,死亡現(xiàn)場離奇詭異,居然都是意外死亡焚鲜,警方通過查閱死者的電腦和手機(jī)掌唾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門放前,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人糯彬,你說我怎么就攤上這事凭语。” “怎么了撩扒?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵似扔,是天一觀的道長。 經(jīng)常有香客問我却舀,道長,這世上最難降的妖魔是什么锤灿? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任挽拔,我火速辦了婚禮,結(jié)果婚禮上但校,老公的妹妹穿的比我還像新娘螃诅。我一直安慰自己,他們只是感情好状囱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布术裸。 她就那樣靜靜地躺著,像睡著了一般亭枷。 火紅的嫁衣襯著肌膚如雪袭艺。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天叨粘,我揣著相機(jī)與錄音猾编,去河邊找鬼。 笑死升敲,一個(gè)胖子當(dāng)著我的面吹牛答倡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播驴党,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼瘪撇,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了港庄?” 一聲冷哼從身側(cè)響起倔既,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎鹏氧,沒想到半個(gè)月后叉存,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡度帮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年歼捏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稿存。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞳秽,死狀恐怖瓣履,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情练俐,我是刑警寧澤袖迎,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站腺晾,受9級(jí)特大地震影響燕锥,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜悯蝉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一归形、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鼻由,春花似錦暇榴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至狠轻,卻和暖如春奸例,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背向楼。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工哩至, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蜜自。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓菩貌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親重荠。 傳聞我的和親對(duì)象是個(gè)殘疾皇子箭阶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容