一、網(wǎng)絡(luò)概述
網(wǎng)絡(luò)是由若干節(jié)點(diǎn)和連接這些節(jié)點(diǎn)的鏈路構(gòu)成掘猿,表示諸多對象及其相互聯(lián)系病游。在計(jì)算機(jī)領(lǐng)域中,網(wǎng)絡(luò)是信息傳輸稠通、接收衬衬、共享的虛擬平臺(tái),通過它把各個(gè)點(diǎn)采记、面佣耐、體的信息聯(lián)系到一起,從而實(shí)現(xiàn)這些資源的共享唧龄。網(wǎng)絡(luò)是人類發(fā)展史來最重要的發(fā)明兼砖,提高了科技和人類社會(huì)的發(fā)展奸远。
二、網(wǎng)絡(luò)基礎(chǔ)概念
- 客戶端:應(yīng)用 C/S(客戶端/服務(wù)器) B/S(瀏覽器/服務(wù)器)
- 服務(wù)器:為客戶端提供服務(wù)讽挟、數(shù)據(jù)懒叛、資源的機(jī)器
3 .請求:客戶端向服務(wù)器索取數(shù)據(jù)點(diǎn)擊免費(fèi)下載海量工程資料 - 響應(yīng):服務(wù)器對客戶端請求作出反應(yīng),一般是返回給客戶端數(shù)據(jù)
- URL:Uniform Resource Locator(統(tǒng)一資源定位符)耽梅。網(wǎng)絡(luò)中每一個(gè)資源都對應(yīng)唯一的地址薛窥。
- IP地址是IP協(xié)議提供的一種統(tǒng)一的地址格式,它為互聯(lián)網(wǎng)上的每一個(gè)網(wǎng)絡(luò)和每一臺(tái)主機(jī)分配一個(gè)邏輯地址眼姐,以此來屏蔽物理地址(每個(gè)機(jī)器都有一個(gè)編碼诅迷,如MAC上就有一個(gè)叫MAC地址的東西)的差異。是32位二進(jìn)制數(shù)據(jù)众旗,通常以十進(jìn)制表示罢杉,并以“.”分隔。IP地址是一種邏輯地地址贡歧,用來標(biāo)識(shí)網(wǎng)絡(luò)中一個(gè)個(gè)主機(jī)浓冒,在本地局域網(wǎng)上是惟一的巢掺。
- IP(網(wǎng)絡(luò)之間互連的協(xié)議)它是能使連接到網(wǎng)上的所有計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)相互通信的一套規(guī)則喳钟,規(guī)定了計(jì)算機(jī)在因特網(wǎng)上進(jìn)行通信時(shí)應(yīng)當(dāng)遵守的規(guī)則逞壁。任何廠家生產(chǎn)的計(jì)算機(jī)系統(tǒng),只要遵守IP協(xié)議就可以與因特網(wǎng)互連互通绍弟。IP地址有唯一性技即,即每臺(tái)機(jī)器的IP地址在全世界是唯一的。這里指的是網(wǎng)絡(luò)上的真實(shí)IP它是通過本機(jī)IP地址和子網(wǎng)掩碼的"與"運(yùn)算然后再通過各種處理算出來的(要遵守TCP協(xié)議還要加報(bào)文及端口什么的晌柬,我沒有細(xì)追究姥份,現(xiàn)在還用不上,反正暫時(shí)知道被處理過的就行了)
三年碘、網(wǎng)絡(luò)通信
1. 網(wǎng)絡(luò)三要素
IP:主機(jī)的唯一表示 (http://202.108.22.5/)
端口號(hào):正在運(yùn)行的程序(0~65535)
協(xié)議:通信規(guī)則澈歉,TCP以及UDP
2. 網(wǎng)絡(luò)模型
2.1 簡介
- 定義:計(jì)算機(jī)網(wǎng)絡(luò)的各層 + 其協(xié)議的集合
- 作用:定義該計(jì)算機(jī)網(wǎng)絡(luò)的所能完成的功能
2.2 結(jié)構(gòu)介紹
OSI體系結(jié)構(gòu):概念清楚 & 理念完整,但復(fù)雜 & 不實(shí)用
TCP / IP體系結(jié)構(gòu):含了一系列構(gòu)成互聯(lián)網(wǎng)基礎(chǔ)的網(wǎng)絡(luò)協(xié)議屿衅,是Internet的核心協(xié)議 & 被廣泛應(yīng)用于局域網(wǎng) 和 廣域網(wǎng)
五層體系結(jié)構(gòu):融合了OSI 與 TCP / IP的體系結(jié)構(gòu)埃难,目的是為了學(xué)習(xí) & 講解計(jì)算機(jī)原理
網(wǎng)絡(luò)參考模型OSI概述:(物聯(lián)網(wǎng)傳話試用)
1. 物理層:主要定義物理設(shè)備標(biāo)準(zhǔn),如網(wǎng)線的接口類型涤久、光纖的接口類型涡尘、各種傳輸介質(zhì)的傳輸速率等。它的主要作用是傳輸比特流(就是由1响迂、0轉(zhuǎn)化為電流強(qiáng)弱來進(jìn)行傳輸,到達(dá)目的地后在轉(zhuǎn)化為1考抄、0,也就是我們常說的數(shù)模轉(zhuǎn)換與模數(shù)轉(zhuǎn)換)蔗彤。這一層的數(shù)據(jù)叫做比特川梅。 指兩臺(tái)電腦進(jìn)行傳輸數(shù)據(jù)的網(wǎng)線疯兼。
2. 數(shù)據(jù)鏈路層:主要將從物理層接收的數(shù)據(jù)進(jìn)行MAC地址(網(wǎng)卡的地址)的封裝與解封裝。常把這一層的數(shù)據(jù)叫做幀贫途。在這一層工作的設(shè)備是交換機(jī)吧彪,數(shù)據(jù)通過交換機(jī)來傳輸。
3. 網(wǎng)絡(luò)層:主要將從下層接收到的數(shù)據(jù)進(jìn)行IP地址(例192.168.0.1)的封裝與解封裝丢早。在這一層工作的設(shè)備是路由器姨裸,常把這一層的數(shù)據(jù)叫做數(shù)據(jù)包。 將發(fā)送端電腦發(fā)送過來的數(shù)據(jù), 通過路由器進(jìn)行分配給指定IP的電腦上怨酝。
4. 傳輸層:定義了一些傳輸數(shù)據(jù)的協(xié)議和端口號(hào)(WWW端口80等)傀缩,如:TCP(傳輸控制協(xié)議,傳輸效率低凫碌,可靠性強(qiáng)扑毡,用于傳輸可靠性要求高,數(shù)據(jù)量大的數(shù)據(jù))盛险,UDP(用戶數(shù)據(jù)報(bào)協(xié)議,與TCP特性恰恰相反勋又,用于傳輸可靠性要求不高苦掘,數(shù)據(jù)量小的數(shù)據(jù),如QQ聊天數(shù)據(jù)就是通過這種方式傳輸?shù)模?主要是將從下層接收的數(shù)據(jù)進(jìn)行分段和傳輸楔壤,到達(dá)目的地址后再進(jìn)行重組鹤啡。常常把這一層數(shù)據(jù)叫做段。 定義兩臺(tái)電腦數(shù)據(jù)傳輸方式蹲嚣,稱作協(xié)議递瑰,常用的協(xié)議有:TCP、UDP隙畜、HTTP抖部。
5. 會(huì)話層:通過傳輸層(端口號(hào):傳輸端口與接收端口)建立數(shù)據(jù)傳輸?shù)耐贰V饕谀愕南到y(tǒng)之間發(fā)起會(huì)話或者接受會(huì)話請求(設(shè)備之間需要互相認(rèn)識(shí)可以是IP也可以是MAC或者是主機(jī)名) 要設(shè)置目標(biāo)電腦的IP地址和端口號(hào)议惰,才可以找到接收端的電腦和應(yīng)用慎颗。
6. 表示層:主要是進(jìn)行對接收的數(shù)據(jù)進(jìn)行解釋、加密與解密言询、壓縮與解壓縮等(也就是把計(jì)算機(jī)能夠識(shí)別的東西轉(zhuǎn)換成人能夠能識(shí)別的東西(如圖片俯萎、聲音等)。 將文字或者圖片轉(zhuǎn)換成電腦識(shí)別的二進(jìn)制的過程.运杭。
7. 應(yīng)用層: 主要是一些終端的應(yīng)用夫啊,比如說FTP(各種文件下載),WEB(IE瀏覽)辆憔,QQ之類的(可以把它理解成我們在電腦屏幕上可以看到的東西.就是終端應(yīng)用)撇眯。
四谆趾、HTTP協(xié)議
1. HTTP
- HTTP是 Hyper Text Transfer Protocol(超文本傳輸協(xié)議)。
- 1960年美國人Ted Nelson構(gòu)思了一種通過計(jì)算機(jī)處理文本信息的方法叛本,并稱之為超文本(hypertext),這成為了HTTP超文本傳輸協(xié)議標(biāo)準(zhǔn)架構(gòu)的發(fā)展根基沪蓬。
- 超文本是用超鏈接的方法,將各種不同空間的文字信息組織在一起的網(wǎng)狀文本来候。超文本更是一種用戶界面范式跷叉,用以顯示文本及與文本之間相關(guān)的內(nèi)容。現(xiàn)時(shí)超文本普遍以電子文檔方式存在营搅,其中的文字包含有可以鏈結(jié)到其他位置或者文檔的連結(jié)云挟,允許從當(dāng)前閱讀位置直接切換到超文本連結(jié)所指向的位置。
- 它是TCP/IP協(xié)議的一個(gè)應(yīng)用層協(xié)議转质,用于定義WEB瀏覽器與WEB服務(wù)器之間交換數(shù)據(jù) 的過程及數(shù)據(jù)本身的格式园欣。
2. HTTP協(xié)議概述
- WEB瀏覽器與WEB服務(wù)器之間的一問一答的交互過程必須遵循一定的規(guī)則,這個(gè)規(guī)則就是HTTP協(xié)議休蟹。
- Http協(xié)議是一種應(yīng)用層協(xié)議沸枯,它通過TCP實(shí)現(xiàn)了可靠的數(shù)據(jù)傳輸,能夠保證數(shù)據(jù)的完整性赂弓、正確性
- 而TCP對于數(shù)據(jù)傳輸控制的優(yōu)點(diǎn)也能夠體現(xiàn)在Http協(xié)議上绑榴,使得Http的數(shù)據(jù)傳輸吞吐量、效率得到保證
10.1.3 http與https基本概念
- HTTP:是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議盈魁,是一個(gè)客戶端和服務(wù)器端請求和應(yīng)答的標(biāo)準(zhǔn)(TCP)翔怎,用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳輸協(xié)議,它可以使瀏覽器更加高效杨耙,使網(wǎng)絡(luò)傳輸減少赤套。
- HTTPS:是以安全為目標(biāo)的HTTP通道,簡單講是HTTP的安全版珊膜,即HTTP下加入SSL(Secure Sockets Layer)層容握,HTTPS的安全基礎(chǔ)是SSL,因此加密的詳細(xì)內(nèi)容就需要SSL辅搬。
HTTPS協(xié)議的主要作用可以分為兩種:一種是建立一個(gè)信息安全通道唯沮,來保證數(shù)據(jù)傳輸?shù)陌踩涣硪环N就是確認(rèn)網(wǎng)站的真實(shí)性堪遂。
10.1.4 http與https的區(qū)別
簡單來說介蛉,HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議溶褪,要比http協(xié)議安全币旧。區(qū)別主要如下:
1、https協(xié)議需要到ca申請證書猿妈,一般免費(fèi)證書較少吹菱,因而需要一定費(fèi)用巍虫。
2、http是超文本傳輸協(xié)議鳍刷,信息是明文傳輸占遥,https則是具有安全性的ssl加密傳輸協(xié)議。
3输瓜、http和https使用的是完全不同的連接方式瓦胎,用的默認(rèn)端口也不一樣,前者是80尤揣,后者是443搔啊。
4、http的連接很簡單北戏,是無狀態(tài)的负芋;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議嗜愈,比http協(xié)議安全旧蛾。
10.2 http請求的組成
從客戶端到服務(wù)器端的請求消息,信息由4部分組成請求行芝硬、消息報(bào)頭蚜点、空行、請求正文
10.2.1 請求行(請求方法URI協(xié)議/版本)
請求的第一行是“方法URI協(xié)議/版本”例如:GET/sample.jsp HTTP/1.1
以上代碼中“GET”代表請求方法拌阴,“/sample.jsp”表示URI,“HTTP/1.1代表協(xié)議和協(xié)議的版本奶镶。
10.2.2 消息報(bào)頭(請求頭Request Header)
4. 常用請求頭
- Host: www.baidu.com
- User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0
(User Agent用戶代理迟赃,是Http協(xié)議中的一部分,屬于頭域的組成部分厂镇,User Agent也簡稱UA纤壁。它是一個(gè)特殊字符串頭,是一種向訪問網(wǎng)站提供你所使用的瀏覽器類型及版本捺信、操作系統(tǒng)及版本酌媒、瀏覽器內(nèi)核、等信息的標(biāo)識(shí)迄靠。通過這個(gè)標(biāo)識(shí)秒咨,用戶所訪問的網(wǎng)站可以顯示不同的排版從而為用戶提供更好的體驗(yàn)或者進(jìn)行信息統(tǒng)計(jì);例如用手機(jī)訪問谷歌和電腦訪問是不一樣的掌挚,這些是谷歌根據(jù)訪問者的UA來判斷的雨席。UA可以進(jìn)行偽裝。- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
- Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
- Accept-Encoding: gzip, deflate, br
- Connection: keep-alive
- Cache-Control: max-age=0
- Content-Type: text/html
- Content-Length:120
請求頭包含許多有關(guān)的客戶端環(huán)境和請求正文的有用信息吠式。例如陡厘,請求頭可以聲明瀏覽器所用的語言抽米,請求正文的長度等。例如:
Accept:image/gif.image/jpeg./(請求的圖片內(nèi)容格式)
Accept-Language:zh-cn(zh-CN 是表示中文糙置,fr-FR 是表示法語云茸。 這是RFC1766定義的語言表示方式)
Connection:Keep-Alive(又稱持久連接、連接重用谤饭,Keep-Alive功能使客戶端到服務(wù)器端的連接持續(xù)有效标捺,當(dāng)出現(xiàn)對服務(wù)器的后繼請求時(shí),Keep-Alive功能避免了建立或者重新建立連接网持。)
Host:localhost(主機(jī)名字)
User-Agent:Mozila/4.0(compatible:MSIE5.01:Windows NT5.0)(客戶端身份信息)
Accept-Encoding:gzip,deflate( 以壓縮格式接收請求數(shù)據(jù))
10.2.3 空行
必須有宜岛,發(fā)送回車符和換行符,通知服務(wù)器以下不再有請求頭
10.2.4 請求正文(body)
請求頭和請求正文之間是一個(gè)空行功舀,這個(gè)行非常重要萍倡,它表示請求頭已經(jīng)結(jié)束,接下來的是請求正文辟汰。請求正文中可以包含客戶提交的查詢字符串信息:
username=jinqiao&password=1234
在以上的例子的HTTP請求中列敲,請求的正文只有一行內(nèi)容。當(dāng)然帖汞,在實(shí)際應(yīng)用中戴而,HTTP請求正文可以包含更多的內(nèi)容。
案例
10.4 請求方法
請求方法 | 解釋 |
---|---|
GET | 請求獲取Request-URI所標(biāo)識(shí)的資源 |
POST | 在Request-URI所標(biāo)識(shí)的資源后附加新的數(shù)據(jù) |
HEAD | 請求獲取由Request-URI所標(biāo)識(shí)的資源的響應(yīng)消息報(bào)頭 |
PUT | 請求服務(wù)器存儲(chǔ)一個(gè)資源翩蘸,并用Request-URI作為其標(biāo)識(shí) |
DELETE | 請求服務(wù)器刪除Request-URI所標(biāo)識(shí)的資源 |
TRACE | 請求服務(wù)器回送收到的請求信息所意,主要用于測試或診斷 |
CONNECT | 保留將來使用 |
OPTIONS | 請求查詢服務(wù)器的性能,或者查詢與資源相關(guān)的選項(xiàng)和需求 |
PATCH | 對PUT方法的補(bǔ)充催首,用來對已知資源進(jìn)行局部更新 |
面試題:psot與get的區(qū)別
- Get是不安全的扶踊,因?yàn)樵趥鬏斶^程,數(shù)據(jù)被放在請求的URL中郎任;Post是安全的秧耗,因?yàn)樗胁僮鲗τ脩魜碚f都是不可見的。
- Get傳送的數(shù)據(jù)量較小舶治,這主要是因?yàn)槭躑RL長度限制分井;Post傳送的數(shù)據(jù)量較大,一般被默認(rèn)為不受限制霉猛。
- Get限制Form表單的數(shù)據(jù)集的值必須為ASCII字符尺锚;而Post支持整個(gè)ISO10646字符集。
- Get執(zhí)行效率卻比Post方法好韩脏。Get是form提交的默認(rèn)方法缩麸。
拓展:
- Http的get請求方法提交的數(shù)據(jù)大小長度并沒有限制,Http協(xié)議規(guī)范沒有對URL長度進(jìn)行限制。目前說的get長度有限制杭朱,是特定的瀏覽器及服務(wù)器對它的限制阅仔。
- 各種瀏覽器和服務(wù)器的最大處理能力如下:
IE:對URL的最大限制為2083個(gè)字符,若超出這個(gè)數(shù)字弧械,提交按鈕沒有任何反應(yīng)八酒。
Firefox:對Firefox瀏覽器URL的長度限制為:65536個(gè)字符。
Safari:URL最大長度限制為80000個(gè)字符刃唐。
Opera:URL最大長度限制為190000個(gè)字符羞迷。
Chrome:URL最大長度限制為8182個(gè)字符。
Apache(Server):能接受的最大url長度為8192個(gè)字符(這個(gè)準(zhǔn)確度待定画饥?衔瓮??) Microsoft Internet Information Server(IIS):n能接受最大url的長度為16384個(gè)字符抖甘。- 理論上講热鞍,post是沒有大小限制的。Http協(xié)議規(guī)范也沒有進(jìn)行大小限制衔彻,起限制作用的是服務(wù)器處理程序的處理能力薇宠。
Tomcat下默認(rèn)post長度為2M,可通過修改conf/server.xml中的“maxPostSize=0”來取消對post大小的限制艰额。- 注意:若長度超限澄港,則服務(wù)端返回414標(biāo)識(shí)
10.5 http響應(yīng)格式
從服務(wù)器端到客戶器端的響應(yīng)信息,信息由4部分組成:狀態(tài)行柄沮、消息報(bào)頭回梧、空行、響應(yīng)正文祖搓。
10.5.1 狀態(tài)行
HTTP-1.1 Status-Code Reason-Phrase CRLF其中漂辐,HTTP-Version表示服務(wù)器HTTP協(xié)議的版本;Status-Code表示服務(wù)器發(fā)回的響應(yīng)狀態(tài)代碼棕硫;Reason-Phrase表示狀態(tài)代碼的文本描述。
例如:HTTP/1.1 200 OK \r\n
狀態(tài)碼
當(dāng)瀏覽者訪問一個(gè)網(wǎng)頁時(shí)袒啼,瀏覽者的瀏覽器會(huì)向網(wǎng)頁所在服務(wù)器發(fā)出請求哈扮。當(dāng)瀏覽器接收并顯示網(wǎng)頁前,此網(wǎng)頁所在的服務(wù)器會(huì)返回一個(gè)包含HTTP狀態(tài)碼的信息頭(server header)用以響應(yīng)瀏覽器的請求蚓再。
HTTP狀態(tài)碼的英文為HTTP Status Code滑肉。
下面是常見的HTTP狀態(tài)碼:
狀態(tài)碼 | 描述 |
---|---|
200 | 請求成功 |
301 | 資源(網(wǎng)頁等)被永久轉(zhuǎn)移到其它URL |
404 | 請求的資源(網(wǎng)頁等)不存在 |
500 | 內(nèi)部服務(wù)器錯(cuò)誤 |
HTTP狀態(tài)碼分類
HTTP狀態(tài)碼由三個(gè)十進(jìn)制數(shù)字組成,第一個(gè)十進(jìn)制數(shù)字定義了狀態(tài)碼的類型摘仅,后兩個(gè)數(shù)字沒有分類的作用靶庙。HTTP狀態(tài)碼共分為5種類型:
狀態(tài)碼 | 解釋 |
---|---|
100-199 | 信息狀態(tài)碼,表示成功接收請求娃属,要求客戶端繼續(xù)提交下一次請求才能完成整個(gè)處理過程六荒。100(continue)繼續(xù)發(fā)送 |
200-299 | 成功狀態(tài)碼护姆,表示成功接收請求并已完成整個(gè)處理過程,常用200(OK)成功接收 |
300-399 | 重定向狀態(tài)碼掏击,例如卵皂,請求的資源已經(jīng)移動(dòng)一個(gè)新地址,常用302砚亭、307和304 |
400-499 | 客戶端的請求有錯(cuò)誤灯变,常用404(Not Found),403(Fobidden) |
500-599 | 服務(wù)器端出現(xiàn)錯(cuò)誤捅膘,常用 500 |
HTTP狀態(tài)碼列表:
狀態(tài)碼 | 狀態(tài)碼英文名稱 | 中文描述 |
---|---|---|
100 | Continue | 繼續(xù)添祸。客戶端應(yīng)繼續(xù)其請求 |
101 | Switching Protocols | 切換協(xié)議。服務(wù)器根據(jù)客戶端的請求切換協(xié)議寻仗。只能切換到更高級的協(xié)議刃泌,例如,切換到HTTP的新版本協(xié)議 |
200 | OK | 請求成功愧沟。一般用于GET與POST請求 |
201 | Created | 已創(chuàng)建蔬咬。成功請求并創(chuàng)建了新的資源 |
202 | Accepted | 已接受。已經(jīng)接受請求沐寺,但未處理完成 |
203 | Non-Authoritative Information | 非授權(quán)信息林艘。請求成功。但返回的meta信息不在原始的服務(wù)器混坞,而是一個(gè)副本 |
204 | No Content | 無內(nèi)容狐援。服務(wù)器成功處理,但未返回內(nèi)容究孕。在未更新網(wǎng)頁的情況下啥酱,可確保瀏覽器繼續(xù)顯示當(dāng)前文檔 |
205 | Reset Content | 重置內(nèi)容。服務(wù)器處理成功厨诸,用戶終端(例如:瀏覽器)應(yīng)重置文檔視圖镶殷。可通過此返回碼清除瀏覽器的表單域 |
206 | Partial Content | 部分內(nèi)容微酬。服務(wù)器成功處理了部分GET請求 |
300 | Multiple Choices | 多種選擇绘趋。請求的資源可包括多個(gè)位置,相應(yīng)可返回一個(gè)資源特征與地址的列表用于用戶終端(例如:瀏覽器)選擇 |
301 | Moved Permanently | 永久移動(dòng)颗管。請求的資源已被永久的移動(dòng)到新URI陷遮,返回信息會(huì)包括新的URI,瀏覽器會(huì)自動(dòng)定向到新URI垦江。今后任何新的請求都應(yīng)使用新的URI代替 |
302 | Found | 臨時(shí)移動(dòng)帽馋。與301類似。但資源只是臨時(shí)被移動(dòng)≌雷澹客戶端應(yīng)繼續(xù)使用原有URI |
303 | See Other | 查看其它地址姨涡。與301類似。使用GET和POST請求查看 |
304 | Not Modified | 未修改项秉。所請求的資源未修改绣溜,服務(wù)器返回此狀態(tài)碼時(shí),不會(huì)返回任何資源娄蔼〔烙鳎客戶端通常會(huì)緩存訪問過的資源,通過提供一個(gè)頭信息指出客戶端希望只返回在指定日期之后修改的資源 |
305 | Use Proxy | 使用代理岁诉。所請求的資源必須通過代理訪問 |
306 | Unused | 已經(jīng)被廢棄的HTTP狀態(tài)碼 |
307 | Temporary Redirect | 臨時(shí)重定向锚沸。與302類似。使用GET請求重定向 |
400 | Bad Request | 客戶端請求的語法錯(cuò)誤涕癣,服務(wù)器無法理解 |
401 | Unauthorized | 請求要求用戶的身份認(rèn)證 |
402 | Payment Required | 保留哗蜈,將來使用 |
403 | Forbidden | 服務(wù)器理解請求客戶端的請求,但是拒絕執(zhí)行此請求 |
404 | Not Found | 服務(wù)器無法根據(jù)客戶端的請求找到資源(網(wǎng)頁)坠韩。通過此代碼距潘,網(wǎng)站設(shè)計(jì)人員可設(shè)置"您所請求的資源無法找到"的個(gè)性頁面 |
405 | Method Not Allowed | 客戶端請求中的方法被禁止 |
406 | Not Acceptable | 服務(wù)器無法根據(jù)客戶端請求的內(nèi)容特性完成請求 |
407 | Proxy Authentication Required | 請求要求代理的身份認(rèn)證,與401類似只搁,但請求者應(yīng)當(dāng)使用代理進(jìn)行授權(quán) |
408 | Request Time-out | 服務(wù)器等待客戶端發(fā)送的請求時(shí)間過長音比,超時(shí) |
409 | Conflict | 服務(wù)器完成客戶端的 PUT 請求時(shí)可能返回此代碼贷币,服務(wù)器處理請求時(shí)發(fā)生了沖突 |
410 | Gone | 客戶端請求的資源已經(jīng)不存在苛萎。410不同于404,如果資源以前有現(xiàn)在被永久刪除了可使用410代碼沮翔,網(wǎng)站設(shè)計(jì)人員可通過301代碼指定資源的新位置 |
411 | Length Required | 服務(wù)器無法處理客戶端發(fā)送的不帶Content-Length的請求信息 |
412 | Precondition Failed | 客戶端請求信息的先決條件錯(cuò)誤 |
413 | Request Entity Too Large | 由于請求的實(shí)體過大焰望,服務(wù)器無法處理骚亿,因此拒絕請求。為防止客戶端的連續(xù)請求熊赖,服務(wù)器可能會(huì)關(guān)閉連接来屠。如果只是服務(wù)器暫時(shí)無法處理,則會(huì)包含一個(gè)Retry-After的響應(yīng)信息 |
414 | Request-URI Too Large | 請求的URI過長(URI通常為網(wǎng)址)震鹉,服務(wù)器無法處理 |
415 | Unsupported Media Type | 服務(wù)器無法處理請求附帶的媒體格式 |
416 | Requested range not satisfiable | 客戶端請求的范圍無效 |
417 | Expectation Failed | 服務(wù)器無法滿足Expect的請求頭信息 |
500 | Internal Server Error | 服務(wù)器內(nèi)部錯(cuò)誤的妖,無法完成請求 |
501 | Not Implemented | 服務(wù)器不支持請求的功能,無法完成請求 |
502 | Bad Gateway | 作為網(wǎng)關(guān)或者代理工作的服務(wù)器嘗試執(zhí)行請求時(shí)足陨,從遠(yuǎn)程服務(wù)器接收到了一個(gè)無效的響應(yīng) |
503 | Service Unavailable | 由于超載或系統(tǒng)維護(hù),服務(wù)器暫時(shí)的無法處理客戶端的請求娇未。延時(shí)的長度可包含在服務(wù)器的Retry-After頭信息中 |
504 | Gateway Time-out | 充當(dāng)網(wǎng)關(guān)或代理的服務(wù)器墨缘,未及時(shí)從遠(yuǎn)端服務(wù)器獲取請求 |
505 | HTTP Version not supported | 服務(wù)器不支持請求的HTTP協(xié)議的版本,無法完成處理 |
10.5.2 消息報(bào)頭
服務(wù)器傳遞給客戶端用于說明服務(wù)器的一些信息,以及將來繼續(xù)訪問該資源時(shí)的策略镊讼。
Location:Location響應(yīng)報(bào)頭域用于重定向接受者到一個(gè)新的位置宽涌。
Server:Server響應(yīng)報(bào)頭域包含了服務(wù)器用來處理請求的軟件信息。?WWW-Authenticate:WWW-Authenticate響應(yīng)報(bào)頭域必須被包含在401(未授權(quán)的)響應(yīng)消息中下面是WWW-Authenticate響應(yīng)報(bào)頭域的一個(gè)蝶棋,例子:WWW-Authenticate: Basic realm="Basic Auth Test!“
Content-Encoding:Content-Encoding實(shí)體報(bào)頭域被使用作媒體類型的修飾符.
Content-Language:Content-Language實(shí)體報(bào)頭域描述了資源所用的自然語言卸亮。
Content-Length: Content-Length實(shí)體報(bào)頭域用于指明正文的長度.
Content-Type:Content-Type實(shí)體報(bào)頭域用語指明發(fā)送給接收者的實(shí)體正文的媒體類型。
Last-Modified:Last-Modified實(shí)體報(bào)頭域用于指示資源最后的修改日期及時(shí)間玩裙。
Expires: Expires實(shí)體報(bào)頭域給出響應(yīng)過期的日期和時(shí)間兼贸。
Expires實(shí)體報(bào)頭域使用的日期和時(shí)間必須是RFC 1123中的日期格式,例如:?Expires: Thu, 15 Sep 2005 16:00:00 GMT
10.5.3 響應(yīng)正文
服務(wù)端返回給客戶端的HTML文本內(nèi)容吃溅,或者其他格式的數(shù)據(jù)溶诞,比如:視頻流、圖片或者音頻數(shù)據(jù)决侈。
如果請求的是HTML頁面螺垢,那么返回的就是HTML代碼。如果是JS就是JS代碼赖歌。
7. Http協(xié)議的特點(diǎn)
①支持客戶/服務(wù)器模式枉圃。
②簡單快速:客戶向服務(wù)器請求服務(wù)時(shí),只需傳送請求方法和路徑庐冯。請求方法常用的有GET孽亲、 HEAD、POST肄扎。每種方法規(guī)定了客戶與服務(wù)器聯(lián)系的類型不同墨林。 由于HTTP協(xié)議簡單,使得HTTP服務(wù)器的程序規(guī)模小犯祠,因而通信速度很快旭等。
③靈活:HTTP允許傳輸任意類型的數(shù)據(jù)對象。正在傳輸?shù)念愋陀蒀ontent-Type加以標(biāo)記衡载。
④無連接:無連接的含義是限制每次連接只處理一個(gè)請求搔耕。服務(wù)器處理完客戶的請求, 并收到客戶的應(yīng)答后痰娱,即斷開連接弃榨。采用這種方式可以節(jié)省傳輸時(shí)間。
⑤無狀態(tài):HTTP協(xié)議是無狀態(tài)協(xié)議梨睁。無狀態(tài)是指協(xié)議對于事務(wù)處理沒有記憶能力鲸睛。 缺少狀態(tài)意味著如果后續(xù)處理需要前面的信息,則它必須重傳坡贺,這樣可能導(dǎo)致每 次連接傳送的數(shù)據(jù)量增大官辈。另一方面箱舞,在服務(wù)器不需要先前信息時(shí)它的應(yīng)答就較快
8. Http 1.0 與 Http1.1的區(qū)別
1.0協(xié)議,客戶端與web服務(wù)器建立連接后拳亿,只能獲得一個(gè)web資源晴股! 而1.1協(xié)議,允許客戶端與web服務(wù)器建立連接后肺魁,在一個(gè)連接上獲取多個(gè)web資源电湘!
3. TCP與UDP區(qū)別:
TCP:
建立連接
安全可靠協(xié)議
以流進(jìn)行數(shù)據(jù)傳遞,無大小限制
三次握手協(xié)議鹅经,四次揮手UDP:
不建立連接
不可靠協(xié)議
以數(shù)據(jù)包傳遞寂呛,有大小限制64K
04. Socket以及Http:
Socket:長連接,理論上客戶端和服務(wù)端一旦建立連接瞬雹,則不會(huì)主動(dòng)斷掉昧谊;但是由于各種環(huán)境因素可能會(huì)是連接斷開,比如說:服務(wù)器端或客戶端主機(jī)down了酗捌,網(wǎng)絡(luò)故障呢诬,或者兩者之間長時(shí)間沒有數(shù)據(jù)傳輸,網(wǎng)絡(luò)防火墻可能會(huì)斷開該鏈接已釋放網(wǎng)絡(luò)資源胖缤。所以當(dāng)一個(gè)socket連接中沒有數(shù)據(jù)的傳輸尚镰,那么為了位置連續(xù)的連接需要發(fā)送心跳消息,具體心跳消息格式是開發(fā)者自己定義的哪廓。
Http:短連接狗唉,即客戶端向服務(wù)器發(fā)送一次請求,服務(wù)器端響應(yīng)后連接即會(huì)斷掉涡真。