第一篇:http、TCPIP協(xié)議與socket之間的區(qū)別
http、TCP/IP協(xié)議與socket之間的區(qū)別
1、TCP/IP連接手機(jī)能夠使用聯(lián)網(wǎng)功能是因?yàn)槭謾C(jī)底層實(shí)現(xiàn)了TCP/IP協(xié)議,可以使手機(jī)終端通過(guò)無(wú)線網(wǎng)絡(luò)建立TCP連接。TCP協(xié)議可以對(duì)上層網(wǎng)絡(luò)提供接口,使上層網(wǎng)絡(luò)數(shù)據(jù)的傳輸建立在“無(wú)差別”的網(wǎng)絡(luò)之上。
建立起一個(gè)TCP連接需要經(jīng)過(guò)“三次握手”:
第一次握手:客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài),等待服務(wù)器確認(rèn);第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶的SYN(ack=j+1),同時(shí)自己也發(fā)送一個(gè)SYN包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài);
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
握手過(guò)程中傳送的包里不包含數(shù)據(jù),三次握手完畢后,客戶端與服務(wù)器才正式開始傳送數(shù)據(jù)。理想狀態(tài)下,TCP連接一旦建立,在通信雙方中的任何一方主動(dòng)關(guān)閉連接之前,TCP 連接都將被一直保持下去。斷開連接時(shí)服務(wù)器和客戶端均可以主動(dòng)發(fā)起斷開TCP連接的請(qǐng)求,斷開過(guò)程需要經(jīng)過(guò)“四次握手”(過(guò)程就不細(xì)寫了,就是服務(wù)器和客戶端交互,最終確定斷開).2、HTTP連接
HTTP協(xié)議即超文本傳送協(xié)議(Hypertext Transfer Protocol),是Web聯(lián)網(wǎng)的基礎(chǔ),也是手機(jī)聯(lián)網(wǎng)常用的協(xié)議之一,HTTP協(xié)議是建立在TCP協(xié)議之上的一種應(yīng)用。
HTTP連接最顯著的特點(diǎn)是客戶端發(fā)送的每次請(qǐng)求都需要服務(wù)器回送響應(yīng),在請(qǐng)求結(jié)束后,會(huì)主動(dòng)釋放連接。從建立連接到關(guān)閉連接的過(guò)程稱為“一次連接”。
1)在HTTP 1.0中,客戶端的每次請(qǐng)求都要求建立一次單獨(dú)的連接,在處理完本次請(qǐng)求后,就自動(dòng)釋放連接。
2)在HTTP 1.1中則可以在一次連接中處理多個(gè)請(qǐng)求,并且多個(gè)請(qǐng)求可以重疊進(jìn)行,不需要等待一個(gè)請(qǐng)求結(jié)束后再發(fā)送下一個(gè)請(qǐng)求。
由于HTTP在每次請(qǐng)求結(jié)束后都會(huì)主動(dòng)釋放連接,因此HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態(tài),需要不斷地向服務(wù)器發(fā)起連接請(qǐng)求。通常的做法是即時(shí)不需要獲得任何數(shù)據(jù),客戶端也保持每隔一段固定的時(shí)間向服務(wù)器發(fā)送一次“保持連接”的請(qǐng)求,服務(wù)器在收到該請(qǐng)求后對(duì)客戶端進(jìn)行回復(fù),表明知道客戶端“在線”。若服務(wù)器長(zhǎng)時(shí)間無(wú)法收到
客戶端的請(qǐng)求,則認(rèn)為客戶端“下線”,若客戶端長(zhǎng)時(shí)間無(wú)法收到服務(wù)器的回復(fù),則認(rèn)為網(wǎng)絡(luò)已經(jīng)斷開。
3、SOCKET原理3.1套接字(socket)概念
套接字(socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。它是網(wǎng)絡(luò)通信過(guò)程中端點(diǎn)的抽象表示,包含進(jìn)行網(wǎng)絡(luò)通信必須的五種信息:連接使用的協(xié)議,本地主機(jī)的IP地址,本地進(jìn)程的協(xié)議端口,遠(yuǎn)地主機(jī)的IP地址,遠(yuǎn)地進(jìn)程的協(xié)議端口。應(yīng)用層通過(guò)傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問(wèn)題。多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過(guò)同一個(gè) TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了套接字(Socket)接口。應(yīng)用層可以和傳輸層通過(guò)Socket接口,區(qū)分來(lái)自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。
3.2 建立socket連接
建立Socket連接至少需要一對(duì)套接字,其中一個(gè)運(yùn)行于客戶端,稱為ClientSocket,另一個(gè)運(yùn)行于服務(wù)器端,稱為ServerSocket。
套接字之間的連接過(guò)程分為三個(gè)步驟:服務(wù)器監(jiān)聽,客戶端請(qǐng)求,連接確認(rèn)。
服務(wù)器監(jiān)聽:服務(wù)器端套接字并不定位具體的客戶端套接字,而是處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)控網(wǎng)絡(luò)狀態(tài),等待客戶端的連接請(qǐng)求。
客戶端請(qǐng)求:指客戶端的套接字提出連接請(qǐng)求,要連接的目標(biāo)是服務(wù)器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務(wù)器的套接字,指出服務(wù)器端套接字的地址和端口號(hào),然后就向服務(wù)器端套接字提出連接請(qǐng)求。
連接確認(rèn):當(dāng)服務(wù)器端套接字監(jiān)聽到或者說(shuō)接收到客戶端套接字的連接請(qǐng)求時(shí),就響應(yīng)客戶端套接字的請(qǐng)求,建立一個(gè)新的線程,把服務(wù)器端套接字的描述發(fā)給客戶端,一旦客戶端確認(rèn)了此描述,雙方就正式建立連接。而服務(wù)器端套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求。
4、SOCKET連接與TCP/IP連接
創(chuàng)建Socket連接時(shí),可以指定使用的傳輸層協(xié)議,Socket可以支持不同的傳輸層協(xié)議(TCP或UDP),當(dāng)使用TCP協(xié)議進(jìn)行連接時(shí),該Socket連接就是一個(gè)TCP連接。
socket則是對(duì)TCP/IP協(xié)議的封裝和應(yīng)用(程序員層面上)。也可以說(shuō),TPC/IP協(xié)議是傳輸層協(xié)議,主要解決數(shù)據(jù) 如何在網(wǎng)絡(luò)中傳輸,而HTTP是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)。關(guān)于TCP/IP和HTTP協(xié)議的關(guān)系,網(wǎng)絡(luò)有一段比較容易理解的介紹:
“我們?cè)趥鬏敂?shù)據(jù)時(shí),可以只使用(傳輸層)TCP/IP協(xié)議,但是那樣的話,如 果沒(méi)有應(yīng)用層,便無(wú)法識(shí)別數(shù)據(jù)內(nèi)容,如果想要使傳輸?shù)臄?shù)據(jù)有意義,則必須使用到應(yīng)用層協(xié)議,應(yīng)用層協(xié)議有很多,比如HTTP、FTP、TELNET等,也 可以自己定義應(yīng)用層協(xié)議。WEB使用HTTP協(xié)議作應(yīng)用層協(xié)議,以封裝HTTP文本信息,然后使用TCP/IP做傳輸層協(xié)議將它發(fā)到網(wǎng)絡(luò)上。”
我們平時(shí)說(shuō)的最多的socket是什么呢,實(shí)際上socket是對(duì)TCP/IP協(xié)議的封裝,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API),通過(guò)Socket,我們才能使用TCP/IP協(xié)議。實(shí)際上,Socket跟TCP/IP協(xié)議沒(méi)有必然的聯(lián)系。Socket編程接口在設(shè)計(jì)的時(shí)候,就希望也能適應(yīng)其他的網(wǎng)絡(luò)協(xié)議。所以說(shuō),Socket的出現(xiàn) 只是使得程序員更方便地使用TCP/IP協(xié)議棧而已,是對(duì)TCP/IP協(xié)議的抽象,從而形成了我們知道的一些最基本的函數(shù)接口,比如create、listen、connect、accept、send、read和write等等。網(wǎng)絡(luò)有一段關(guān)于socket和TCP/IP協(xié)議關(guān)系的說(shuō)法比較容易理解:
“TCP/IP只是一個(gè)協(xié)議棧,就像操作系統(tǒng)的運(yùn)行機(jī)制一樣,必須要具體實(shí)現(xiàn),同時(shí)還要提供對(duì)外的操作接口。這個(gè)就像操作系統(tǒng)會(huì)提供標(biāo)準(zhǔn)的編程接口,比如win32編程接口一樣,TCP/IP也要提供可供程序員做網(wǎng)絡(luò)開發(fā)所用的接口,這就是Socket編程接口。”
實(shí)際上,傳輸層的TCP是基于網(wǎng)絡(luò)層的IP協(xié)議的,而應(yīng)用層的HTTP協(xié)議又是基于傳輸層的TCP協(xié)議的,而Socket本身不算是協(xié)議,就像上面所說(shuō),它只是提供了一個(gè)針對(duì)TCP或者UDP編程的接口。socket是對(duì)端口通信開發(fā)的工具,它要更底層一些.5、Socket連接與HTTP連接
由于通常情況下Socket連接就是TCP連接,因此Socket連接一旦建立,通信雙方即可開始相互發(fā)送數(shù)據(jù)內(nèi)容,直到雙方連接斷開。但在實(shí)際網(wǎng)絡(luò)應(yīng)用中,客戶端到服務(wù)器之間的通信往往需要穿越多個(gè)中間節(jié)點(diǎn),例如路由器、網(wǎng)關(guān)、防火墻等,大部分防火墻默認(rèn)會(huì)關(guān)閉長(zhǎng)時(shí)間處于非活躍狀態(tài)的連接而導(dǎo)致 Socket 連接斷連,因此需要通過(guò)輪詢告訴網(wǎng)絡(luò),該連接處于活躍狀態(tài)。
而HTTP連接使用的是“請(qǐng)求—響應(yīng)”的方式,不僅在請(qǐng)求時(shí)需要先建立連接,而且需要客戶端向服務(wù)器發(fā)出請(qǐng)求后,服務(wù)器端才能回復(fù)數(shù)據(jù)。
很多情況下,需要服務(wù)器端主動(dòng)向客戶端推送數(shù)據(jù),保持客戶端與服務(wù)器數(shù)據(jù)的實(shí)時(shí)與同步。此時(shí)若雙方建立的是Socket連接,服務(wù)器就可以直接將數(shù)據(jù)傳送給客戶端;若雙方建立的是HTTP連接,則服務(wù)器需要等到客戶端發(fā)送一次請(qǐng)求后才能將數(shù)據(jù)傳回給客戶端,因此,客戶端定時(shí)向服務(wù)器端發(fā)送連接請(qǐng)求,不僅可以保持在線,同時(shí)也是在“詢問(wèn)”服務(wù)器是否有新的數(shù)據(jù),如果有就將數(shù)據(jù)傳給客戶端。
http協(xié)議是應(yīng)用層的協(xié)義
有個(gè)比較形象的描述:HTTP是轎車,提供了封裝或者顯示數(shù)據(jù)的具體形式;Socket是發(fā)動(dòng)機(jī),提供了網(wǎng)絡(luò)通信的能力。
兩個(gè)計(jì)算機(jī)之間的交流無(wú)非是兩個(gè)端口之間的數(shù)據(jù)通信,具體的數(shù)據(jù)會(huì)以什么樣的形式展現(xiàn)`是以不同的應(yīng)用層協(xié)議來(lái)定義的`如HTTP`FTP`
第二篇:TCPIP協(xié)議的應(yīng)用
TCP/IP協(xié)議的應(yīng)用
學(xué)生:
摘要: Trans mission Control Protocol/Internet Protocol的簡(jiǎn)寫,中譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又名網(wǎng)絡(luò)通訊協(xié)議,是Internet最基本的協(xié)議、Internet國(guó)際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成。TCP/IP 定義了電子設(shè)備如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來(lái)完成自己的需求。
關(guān)鍵詞:TCP/IP;計(jì)算機(jī);因特網(wǎng);應(yīng)用
引言:到了今天,它已經(jīng)成為網(wǎng)絡(luò)世界中運(yùn)用最廣泛,最有生命力的通信協(xié)議,如今電腦上Internet都需要它的設(shè)置。顯然它已經(jīng)成為地球村“人與人”之間的“牽手協(xié)議”隨著當(dāng)前電腦的普及,使得網(wǎng)絡(luò)得到了快速發(fā)展,TCP/IP 定義了電子設(shè)備如何連入因特,最網(wǎng),以及數(shù)據(jù)標(biāo)準(zhǔn)。而這個(gè)協(xié)議也是屬于眾多TCP/IP中的一部分對(duì)設(shè)計(jì)TCP/IP的相關(guān)概念予以解釋。TCP/IP協(xié)議概述
1.1TCP/IP協(xié)議的簡(jiǎn)單說(shuō)明:
在Internet沒(méi)有形成之前,各個(gè)地方已經(jīng)建立了很多小型的網(wǎng)絡(luò),稱為局域網(wǎng),Internet的中文意義是“網(wǎng)際網(wǎng)”。然而,在連接之前的各式各樣的局域網(wǎng)卻存在不同的網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)傳輸規(guī)則,將這些小網(wǎng)連接起來(lái)后各網(wǎng)之間要通過(guò)什么樣的規(guī)則來(lái)傳輸數(shù)據(jù)呢? TCP/IP協(xié)議正是Internet上的“世界語(yǔ)”。
1.2TCP/IP協(xié)議的層次概述
從協(xié)議分層模型方面來(lái)講,TCP/IP由四個(gè)層次組成:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層、應(yīng)用層。
TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。
1.3TCP/IP協(xié)議的數(shù)據(jù)格式
數(shù)據(jù)幀:幀頭+IP數(shù)據(jù)包+幀尾(幀頭包括源和目標(biāo)主機(jī)MAC地址及類型,幀尾是校驗(yàn)
字)
IP數(shù)據(jù)包:IP頭部+TCP數(shù)據(jù)信息(IP頭包括源和目標(biāo)主機(jī)IP地址、類型、生存期等)TCP數(shù)據(jù)信息:TCP頭部+實(shí)際數(shù)據(jù)(TCP頭包括源和目標(biāo)主機(jī)端口號(hào)、順序號(hào)、確認(rèn)號(hào)、校驗(yàn)字等)
1.4TCP/IP協(xié)議的主要特點(diǎn)
1.開放的協(xié)議標(biāo)準(zhǔn),可以免費(fèi)使用,并且獨(dú)立于特定的計(jì)算機(jī)硬件與操作系統(tǒng)
2.獨(dú)立于特定的網(wǎng)絡(luò)硬件,可以運(yùn)行在局域網(wǎng)、廣域網(wǎng),更適用于互聯(lián)網(wǎng)中
3.統(tǒng)一的網(wǎng)絡(luò)地址分配方案,使得整個(gè)TCP/IP設(shè)備在網(wǎng)中都具有惟一的地址
4.標(biāo)準(zhǔn)化的高層協(xié)議,可以提供多種可靠的用戶服務(wù)。TCP/IP協(xié)議的優(yōu)勢(shì)
一個(gè)專有的網(wǎng)絡(luò)開發(fā)出來(lái)用于特定目的。如果它工作很好,用戶將接受它。
為了便利提供IP服務(wù),經(jīng)常用于訪問(wèn)電子郵件或者聊天,通常以某種方式通過(guò)專有網(wǎng)絡(luò)隧道實(shí)現(xiàn)。隧道方式最初可能非常沒(méi)有效率,因?yàn)殡娮余]件和聊天只需要很低的帶寬。
通過(guò)一點(diǎn)點(diǎn)的投資IP 基礎(chǔ)設(shè)施逐漸在專有數(shù)據(jù)網(wǎng)絡(luò)周邊出現(xiàn)。
用IP取代專有服務(wù)的需求出現(xiàn),經(jīng)常是一個(gè)用戶要求。
IP替代品過(guò)程遍布整個(gè)因特網(wǎng),這使IP替代品比最初的專有網(wǎng)絡(luò)更加有價(jià)值(由于網(wǎng)絡(luò)效應(yīng))。
專有網(wǎng)絡(luò)受到壓制。許多用戶開始維護(hù)使用IP替代品的復(fù)制品。
IP包的間接開銷很小,少于1%,這樣在成本上非常有競(jìng)爭(zhēng)性。人們開發(fā)了一種能夠?qū)P帶到專有網(wǎng)絡(luò)上的大部分用戶的不昂貴的傳輸媒介。TCP/IP協(xié)議的運(yùn)作機(jī)制
3.1IP
IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序)發(fā)來(lái)的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來(lái)的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)镮P并沒(méi)有做任何事情來(lái)確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒(méi)有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。
3.2TCP
TCP是面向連接的通信協(xié)議,通過(guò)三次握手建立連接,通訊時(shí)完成時(shí)要拆除連接,由于TCP是面向連接的所以只能用于點(diǎn)對(duì)點(diǎn)的通訊。
TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),采用“帶重傳的肯定確認(rèn)”技術(shù)來(lái)實(shí)現(xiàn)傳輸?shù)目煽啃?。TCP還采用一種稱為“滑動(dòng)窗口”的方式進(jìn)行流量控制,所謂窗口實(shí)際表示接收能力,用以限制發(fā)送方的發(fā)送速度。
TCP將它的信息送到更高層的應(yīng)用程序。
3.3UDP
UDP是面向無(wú)連接的通訊協(xié)議,UDP數(shù)據(jù)包括目的端口號(hào)和源端口號(hào)信息,由于通訊不需要連接,所以可以實(shí)現(xiàn)廣播發(fā)送。
UDP通訊時(shí)不需要接收方確認(rèn),屬于不可靠的傳輸,可能會(huì)出丟包現(xiàn)象,實(shí)際應(yīng)用中要求在程序員編程驗(yàn)證。
3.4CMP
ICMP與IP位于同一層,它被用來(lái)傳送IP的的控制信息。它主要是用來(lái)提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機(jī)通向其他系統(tǒng)的更準(zhǔn)確的路徑,而‘Unreachable’信息則指出路徑有問(wèn)題。TCP/IP協(xié)議的版本更新
IPv4,是互聯(lián)網(wǎng)協(xié)議(Internet Protocol,IP)的第四版,也是第一個(gè)被廣泛使用,構(gòu)成現(xiàn)今互聯(lián)網(wǎng)技術(shù)的基石的協(xié)議。1981年Jon Postel 在RFC791中定義了IP,Ipv4可以運(yùn)行在各種各樣的底層網(wǎng)絡(luò)上,比如端對(duì)端的串行數(shù)據(jù)鏈路(PPP協(xié)議和SLIP協(xié)議),衛(wèi)星鏈路等等。局域網(wǎng)中最常用的是以太網(wǎng)。
IPv6是Internet Protocol Version 6的縮寫,其中Internet Protocol譯為“互聯(lián)網(wǎng)協(xié)議”。IPv6是IETF(互聯(lián)網(wǎng)工程任務(wù)組,Internet Engineering Task Force)設(shè)計(jì)的用于替代現(xiàn)行版本IP協(xié)議(IPv4)的下一代IP協(xié)議。
與IPV4相比,IPV6具有以下幾個(gè)優(yōu)勢(shì):
一,IPv6具有更大的地址空間。
二,IPv6使用更小的路由表。
三,IPv6增加了增強(qiáng)的組播(Multicast)支持以及對(duì)流的支持(Flow Control)。四,IPv6加入了對(duì)自動(dòng)配置(Auto Configuration)的支持。TCP/IP協(xié)議的協(xié)議測(cè)試
全面的測(cè)試應(yīng)包括局域網(wǎng)和互聯(lián)網(wǎng)兩個(gè)方面,因此應(yīng)從局域網(wǎng)和互聯(lián)網(wǎng)兩個(gè)方面測(cè)試,以下是在實(shí)際工作中利用命令行測(cè)試TCP/IP配置步驟:
1.單擊“開始”/“運(yùn)行”,輸入CMD按回車,打開命令提示符窗口。
2.首先檢查IP地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、DNS服務(wù)器地址是否正確,輸入命令ipconfig /all,按回車。此時(shí)顯示了你的網(wǎng)絡(luò)配置,觀查是否正確。
3.輸入ping 127.0.0.1,觀查網(wǎng)卡是否能轉(zhuǎn)發(fā)數(shù)據(jù),如果出現(xiàn)“Request timed out”,表明配置差錯(cuò)或網(wǎng)絡(luò)有問(wèn)題。
4.Ping一個(gè)互聯(lián)網(wǎng)地址,看是否有數(shù)據(jù)包傳回,以驗(yàn)證與互聯(lián)網(wǎng)的連接性。
5.Ping 一個(gè)局域網(wǎng)地址,觀查與它的連通性。
6.用nslookup測(cè)試DNS解析是否正確,輸入如nslookup,查看是否能解析。TCP/IP的協(xié)議重置
如果需要重新安裝 TCP/IP 以使TCP/IP 堆棧恢復(fù)為原始狀態(tài)。可以使用NetShell 實(shí)用程序重置TCP/IP 堆棧,使其恢復(fù)到初次安裝操作系統(tǒng)時(shí)的狀態(tài)。具體操作如下:
1.單擊 開始--> 運(yùn)行,輸入“CMD” 后單擊“確定”;
2.在命令行模式輸入命令
運(yùn)行此命令的結(jié)果與刪除并重新安裝TCP/IP 協(xié)議的效果相同。
7結(jié)論
通過(guò)此次對(duì)TCP/IP協(xié)議的查詢與了解。我們關(guān)于網(wǎng)絡(luò)的知識(shí)又有了進(jìn)一步的提升。我們了解了TPC/IP協(xié)議的重要功能。正是由于這個(gè)協(xié)議,才有了我們?nèi)缃竦摹暗厍虼濉薄PC/IP協(xié)議是我們?nèi)缃窬W(wǎng)絡(luò)層中最基本同時(shí)也是最重要的協(xié)議。我相信隨著如今現(xiàn)代科技的飛速發(fā)展,這份協(xié)議也會(huì)更加臻于完美。
參考資料:
第三篇:合同詐騙罪與合同糾紛之間區(qū)別
合同詐騙罪與合同糾紛之間區(qū)別
合同詐騙罪,是指以非法所有或占有為目的,在簽訂和履行合同過(guò)程中,騙取對(duì)方當(dāng)事人財(cái)物,數(shù)額較大的行為。伴隨著經(jīng)濟(jì)交往的大量增加,合同詐騙犯罪活動(dòng)更加猖獗。為了保護(hù)合同當(dāng)事人的合法權(quán)益,保證市場(chǎng)交易安全,維護(hù)社會(huì)經(jīng)濟(jì)秩序,我國(guó)1997年刑法將利用合同進(jìn)行詐騙的犯罪從詐騙罪中剝離,在第二百二十四條專門規(guī)定了合同詐騙罪及其量刑規(guī)則,從而加大了對(duì)合同詐騙犯罪的打擊力度。但是合同詐騙犯罪往往和合同糾紛交織在一起,在理論上難于區(qū)分,實(shí)踐中難以把握,以致在司法實(shí)踐中經(jīng)常出現(xiàn)偏差,成了困擾廣大司法工作者的一個(gè)難點(diǎn)。
合同糾紛,是指合同雙方當(dāng)事人在履行合同過(guò)程中為行使權(quán)利和履行義務(wù)所發(fā)生的爭(zhēng)議。區(qū)別合同詐騙犯罪和合同糾紛,主要應(yīng)當(dāng)從以下幾個(gè)方面進(jìn)行:
從動(dòng)機(jī)目的上區(qū)別。目的,是行為人希望通過(guò)實(shí)施某種行為達(dá)到某種結(jié)果的心理態(tài)度,查明行為人的目的,是正確區(qū)分合同詐騙犯罪與合同糾紛的關(guān)鍵。合同詐騙罪的行為人只想單方面享受合同所規(guī)定的權(quán)利而不履行合同義務(wù),根本沒(méi)有履行合同的意思。所以,非法所有或占有對(duì)方當(dāng)事人的錢物是合同詐騙犯罪行為人的目的,其欺騙行為就是在非法占有或所有的目的支配下實(shí)施的。而合同當(dāng)事人是在平等互利、協(xié)商一致、等價(jià)有償?shù)脑瓌t上簽訂合同,并希望通過(guò)合同履行,互惠互利,實(shí)現(xiàn)正當(dāng)?shù)慕?jīng)濟(jì)目的,獲得合法的經(jīng)濟(jì)利益,賺取合法利潤(rùn)。故合同糾紛當(dāng)事人不具備故意騙取和非法所有、占有的目的和動(dòng)機(jī)。有的學(xué)者認(rèn)為,對(duì)區(qū)分合同詐騙犯罪和合同糾紛的主觀目的,可以概括為騙和賺的問(wèn)題,前者的目的是騙,后者則以多賺為目的。對(duì)行為人的主觀目的,可以從以下幾個(gè)方面考察:
第一,行為人從簽訂合同時(shí)起就具有騙取的動(dòng)機(jī)和目的。這種情況是比較典型的合同詐騙行為,諸如欺騙對(duì)方,簽訂子虛烏有的虛假合同;公民個(gè)人冒充法人單位對(duì)外簽訂合同;編造根本不存在的假單位、假賬號(hào)、假標(biāo)的等等。這種情況下所簽訂的合同一般都是虛假合同。還有一種情況,就是行為人與對(duì)方所簽訂的合同雖然是真實(shí)的,但卻根本無(wú)意履行或基本不想履行,具有這種目的的行為人均應(yīng)認(rèn)定為合同詐騙。
第二,開始并無(wú)明顯的騙取故意,本身也并非完全沒(méi)有履行能力,但合同簽訂后,抱著能履行則履行、履行不了就拉倒放任心理,不做積極努力,致使對(duì)方遭受嚴(yán)重?fù)p失,而將較大數(shù)額財(cái)物歸自己一方非法所有或占有。這種情況下,行為人沒(méi)有直接騙取的故意,但對(duì)于對(duì)方的損失結(jié)果持明顯的放任態(tài)度,屬于間接故意的騙取行為,故只要符合詐騙罪的其他構(gòu)成要件,可以按合同詐騙犯罪認(rèn)定。
第三,在簽訂合同時(shí)行為人并無(wú)詐騙故意,但在履行合同的過(guò)程中,或因履行困難,或因其他方面的動(dòng)機(jī),行為人的主觀意念發(fā)生了變化,想無(wú)償?shù)胤欠ㄕ加谢蛩泻灱s對(duì)方的財(cái)物或其它標(biāo)的。如采取欺騙方式,收到對(duì)方貨款不發(fā)貨,或收到對(duì)方貨物及勞動(dòng)成果不支付款項(xiàng),或者對(duì)借貸來(lái)的款不再有償還的意思和行為。此時(shí),行為人便已經(jīng)具備了非法所有或占有的目的。
第四,行為人在與對(duì)方簽訂合同時(shí),內(nèi)心處于一種不確定的狀態(tài),對(duì)于是否履行合同義務(wù)、是否非法占有或所有他人財(cái)物,內(nèi)心還沒(méi)有確定的意念,或者對(duì)自己最終無(wú)履約能力還沒(méi)有明確的認(rèn)識(shí),主要指行為人實(shí)際上并非完全沒(méi)有履行合同的能力。在合同簽訂后,由于客觀上的不利條件,使行為人最終不能履行合同規(guī)定的義務(wù)時(shí),如果返還了貨款、預(yù)付款、定金、標(biāo)的物等,就意味著尚未形成非法所有或占有他人財(cái)物的故意,否則,可以認(rèn)定行為人具有了非法占有他人財(cái)物的故意。
第五,簽約時(shí)具有相應(yīng)的履行合同的實(shí)際能力或擔(dān)保,與對(duì)方簽訂的合同也基本無(wú)虛假,開始行為人沒(méi)有騙取的故意,雖有一定欺詐性質(zhì),如夸大履約或擔(dān)保能力、提高產(chǎn)品質(zhì)量指標(biāo)等等,但由于經(jīng)營(yíng)管理不善或其它外在原因,雖經(jīng)行為人積極努力,但合同最終無(wú)法履行或未能完全履行的,行為人也不具有非法所有或占有的故意,應(yīng)按合同糾紛處理。
以下幾種情況可以認(rèn)為行為人沒(méi)有非法所有或占有他人財(cái)物的目的:(1)行為人雖然不具備履行合同的實(shí)際能力或擔(dān)保,但其認(rèn)為在合同簽訂后經(jīng)過(guò)積極努力會(huì)有履行合同的能力,而這種主觀上的認(rèn)識(shí)又具有客觀或現(xiàn)實(shí)的可能性,因而與對(duì)方簽訂了合同,并且最后也基本履行了合同規(guī)定的義務(wù);(2)行為人具有一定的履約能力,但卻認(rèn)為有完全履約能力,因與他人簽訂了大于自己履行能力的合同,并且簽約后對(duì)超出部分確實(shí)做了主觀努力;(3)行為人具有履約能力或擔(dān)保,在與對(duì)方簽約時(shí)主觀上是打算履約的,并且已經(jīng)付出了努力,只是由于客觀情況的變化而確實(shí)不能履約;(4)行為人原有履約能力,但在合同簽訂后由于不可抗力等客觀原因而喪失了履約能力。
從履約能力和履約行為上區(qū)別。衡量是合同糾紛還是合同詐騙,除從行為人的動(dòng)機(jī)和目的上區(qū)別外,行為人有無(wú)履行合同的實(shí)際能力或擔(dān)保,簽約后有無(wú)履約行為及履約行為如何,是另一關(guān)鍵因素。
判斷行為人有無(wú)履行合同意愿的主要客觀根據(jù)是行為人有無(wú)履行合同的能力。如果行為人明知自己無(wú)履行合同的能力而與對(duì)方簽訂合同,那么合同就成了沒(méi)有客觀基礎(chǔ)的純粹虛假的東西,就足以證明行為人沒(méi)有履行合同的意愿。論合同詐騙罪與合同糾紛之區(qū)別
有履約能力,可以是當(dāng)事人本身有按合同規(guī)定履行義務(wù)的能力,也可以是其擔(dān)保人能夠代為履約并承擔(dān)相應(yīng)的違約和賠償責(zé)任,還可以是簽訂合同時(shí)雖沒(méi)有履約能力或擔(dān)保,但在合同規(guī)定的履行期限內(nèi)會(huì)有這種能力或擔(dān)保。由于合同糾紛的雙方當(dāng)事人是為了謀求合法經(jīng)濟(jì)利益而簽約的,因此,他們?cè)诤灱s時(shí),一般都具有履行合同的實(shí)際能力或擔(dān)保。即便夸大了履約能力,簽約后一般也都會(huì)設(shè)法創(chuàng)造條件,履行義務(wù),以期實(shí)現(xiàn)自己的合法利益,從而具有積極的履約行為。而利用合同詐騙的行為人有的根本沒(méi)有履行合同的實(shí)際能力或擔(dān)保,有的雖然具有實(shí)際履約能力,但根本無(wú)履行合同的誠(chéng)意,不會(huì)實(shí)施任何有實(shí)際意義的履約行為。有的犯罪分子可能會(huì)為了應(yīng)付對(duì)方討債或逃避法律制裁而作些表面文章,或利用連環(huán)詐騙、“拆東墻補(bǔ)西墻”的手段,但這些都不是真正的履約行為。對(duì)此可以從以下幾個(gè)方面分析:
第一,有相應(yīng)的履約能力而不履行。行為人具有履行合同的實(shí)際能力或擔(dān)保,但根本無(wú)意履行合同,承擔(dān)義務(wù),只想單方享受權(quán)利,沒(méi)有實(shí)際履約行為,這種行為應(yīng)屬利用合同進(jìn)行詐騙。在同樣的前提下,如行為人確想履行合同,也有積極的履約努力,但由于客觀原因合同終未履行,行為人或其擔(dān)保人又承擔(dān)違約或賠償責(zé)任的,則屬合同糾紛。
第二,無(wú)履約能力也不履行的。一般來(lái)說(shuō),既無(wú)履行合同的實(shí)際能力又無(wú)擔(dān)保,所簽訂的合同對(duì)于對(duì)方來(lái)說(shuō)只能是虛假的,如簽約后“貨款一到手,人往遠(yuǎn)處溜”,就是比較典型的利用合同詐騙。行為人往往是“三無(wú)”皮包公司,或者是以詐騙為常業(yè)的不法分子。但有一種情況應(yīng)屬例外,即有的行為人簽約時(shí)雖無(wú)履行能力,但簽約后在合同履行期限內(nèi)具有積極的履約行為,最終未給對(duì)方造成損失,或雖造成了一定損失,但確實(shí)做出了真正努力,并不逃避債務(wù)的,則應(yīng)按合同糾紛處理。
第三,具有部分履約能力和部分履約行為的。行為人在具有部分履行合同能力的情況下,采用夸大履約能力的辦法,取得對(duì)方信任與其簽訂合同,合同生效后,雖為履行合同做了積極努力,但未能完全履行的,應(yīng)按合同糾紛處理。同樣前提,簽約后,行為人消極履行合同或?qū)贤男薪Y(jié)果放任自流,從而使對(duì)方遭受較大經(jīng)濟(jì)損失的,結(jié)合財(cái)物數(shù)額、去向、行為人的態(tài)度等情況具體分析,有的則應(yīng)按合同詐騙處理??浯舐募s能力增強(qiáng)對(duì)方信任感以騙簽合同,往往容易造成糾紛,但這與利用合同詐騙是有區(qū)別的。第一,前者夸大履約能力只是為了增強(qiáng)對(duì)方信任,促使合同成立,合同本身是基本真實(shí)的。而利用合同進(jìn)行詐騙,合同往往是虛假的,行為人是為了非法所有、占有對(duì)方的財(cái)物。第二,前者夸大履約能力的范圍是有限度的,如夸大生產(chǎn)能力、履約數(shù)量、產(chǎn)品質(zhì)量指標(biāo)等。一般來(lái)說(shuō),當(dāng)事人預(yù)計(jì)經(jīng)過(guò)自己的努力,在正常情況下是能夠完成合同規(guī)定的內(nèi)容的。如果無(wú)限度地夸大履約能力,無(wú)中生有,虛構(gòu)捏造,則成了利用合同進(jìn)行詐騙。第三,前者以夸大事實(shí)的手段騙簽合同后便積極履行合同義務(wù),或積極創(chuàng)造履約條件,或者求助第三者的力量完成履約義務(wù),以獲取合同規(guī)定的利益,免受違約處罰;利用合同詐騙的行為人一般不會(huì)努力創(chuàng)造條件履行合同,或希望合同得不到履行或消極履行或放任自流,一般沒(méi)有實(shí)際意義上的履約行為。
第四,雖有履約能力但遲延履行。行為人雖具有履行合同的實(shí)際能力或擔(dān)保,但簽約后不是積極履約,也不是根本不想履約,而是故意拖延一段時(shí)間才履行合同規(guī)定的義務(wù)。對(duì)這種情況,有人稱為“借雞生蛋”或短期占有行為。對(duì)于這類行為如何認(rèn)定應(yīng)作具體分析。一般來(lái)說(shuō),這種行為與合同詐騙有區(qū)別。行為人與他人簽約后,因客觀原因一時(shí)不能履行合同,如因資金周轉(zhuǎn)困難,便將對(duì)方貨款挪用于其他經(jīng)營(yíng),合同履行期限屆滿后積極還款,或雖資金困難暫時(shí)無(wú)力歸還,但作出計(jì)劃設(shè)法還款,不具有非法所有或占有的主觀目的,因而不能按合同詐騙處理。對(duì)于慣于以占有他人資金作自己經(jīng)營(yíng)資本的,從訂立合同時(shí)起就無(wú)履行的意愿,而是想通過(guò)簽訂合同得到對(duì)方貨款為自己經(jīng)營(yíng),當(dāng)對(duì)方索要時(shí)采取拖賴方法,千方百計(jì)延緩還款時(shí)間,從而在長(zhǎng)時(shí)間內(nèi)占有他人資金,使對(duì)方失去了實(shí)際上的支配權(quán),具有占有他人財(cái)物的故意,不管合同是否真實(shí),符合法定數(shù)額標(biāo)準(zhǔn)的,可以認(rèn)定為利用合同進(jìn)行詐騙犯罪。
第五,具有履約能力而故意不按合同規(guī)定內(nèi)容履行的。有的行為人簽約時(shí)和簽約后都具有相應(yīng)的履約能力和條件,但合同簽訂后,貨物或貨款一旦到手,不是按合同積極償付貨款或交付貨物,而是故意推托,雖承認(rèn)債務(wù),但沒(méi)有實(shí)際履約行為。貨物已使用,貨款已花用或?qū)①~面存款轉(zhuǎn)移,對(duì)方追得緊了或一經(jīng)訴訟,便將自己的積壓產(chǎn)品或滯銷、低劣商品高價(jià)充抵債務(wù);或有計(jì)劃、有準(zhǔn)備地讓法院扣押、查封、變賣,從而使對(duì)方遭受嚴(yán)重?fù)p失。這種行為具有明顯的欺騙性質(zhì),客觀上實(shí)現(xiàn)了非法所有或占有的目的,視具體情況,有些應(yīng)按合同詐騙犯罪處理。但對(duì)于合同簽訂后因經(jīng)營(yíng)管理不善等客觀原因,確實(shí)無(wú)法按同原定內(nèi)容、標(biāo)的履行義務(wù),而只有以物抵債的,則應(yīng)按合同糾紛處理。
從具體情節(jié)、后果上區(qū)別。正確認(rèn)定是否利用合同進(jìn)行詐騙,不僅要從行為人的動(dòng)機(jī)目的、履約能力和履約行為方面考察,還要從具體情節(jié)、后果上進(jìn)行對(duì)比分析,這些也是不可忽視的重要因素。主要應(yīng)從以下幾方面考察分析:
第一,合同成立過(guò)程中及其內(nèi)容是否具有欺騙性。利用合同詐騙犯罪的行為人從合同的要約或承諾到簽訂的過(guò)程,一般都充斥著欺詐行為,并且往往容易使對(duì)方輕信這種帶有騙簽性質(zhì)的行為。合同糾紛雖然也有一定欺詐性質(zhì),但它是局部的、某一方面的,并不是從本質(zhì)上的虛假。從合同的內(nèi)容上看,屬于合糾紛的,合同主要條款一般比較確切、實(shí)際、公平,雙方權(quán)利、義務(wù)比較對(duì)等。而利用合同詐騙所簽訂的合同,一般來(lái)說(shuō)主要條款都對(duì)對(duì)方看似有利,故容易使其輕信而受騙上當(dāng)。如合同的標(biāo)的往往是對(duì)方急于購(gòu)買的緊缺品或急于推銷的積壓品;從數(shù)量和質(zhì)量上,一般對(duì)方為需方的則數(shù)量大、質(zhì)量高;價(jià)款或酬金非常優(yōu)惠,預(yù)付貨款、給付定金的較為多見;履行的期限、地點(diǎn)和方式看起來(lái)對(duì)對(duì)方明顯有利;違約責(zé)任也是如此,規(guī)定行為人如若違約則承擔(dān)較高額度的約定違約金或賠償金。實(shí)際上,有的合同標(biāo)的子虛烏有,或根本不能流通,無(wú)法履行交付,有的則將別人的貨物稱作是自己的,欺騙對(duì)方;違約金定的雖高,但對(duì)方履行后,行為人便逃之夭夭等等。也有的在合同的標(biāo)的、數(shù)量和質(zhì)量、價(jià)款、履行的期限、地點(diǎn)和方式、違約條款中,故意設(shè)置“文字埋人民司法伏”,使對(duì)方不易察覺(jué),致使其無(wú)法履行合同,不可避免地遭受損失。而合同糾紛只是在個(gè)別地方有夸大或隱瞞,如將標(biāo)的物的質(zhì)量標(biāo)準(zhǔn)抬高,隱瞞貨物的瘕疵,縮短或延長(zhǎng)貨物、貨 款交付時(shí)間等。第二,合同當(dāng)事人的主體資格是否真實(shí)、合法。主要看合同當(dāng)事人是否具有合法的主體資格。對(duì)于以法人名義簽訂合同的,一是審查其是否具備法人資格,不具備法人資格而以法人名義對(duì)外簽訂合同的,本身就具有詐騙性質(zhì)。二是審查代理權(quán)限。三是審查所簽訂合同是否超越生產(chǎn)、經(jīng)營(yíng)范圍,是否違背經(jīng)營(yíng)方式。對(duì)于私營(yíng)企業(yè)和個(gè)體工商戶或公民要看是否以其真實(shí)身份對(duì)外簽訂合同。一般來(lái)說(shuō),凡不具備合法主體資格而與他人簽訂合同的,必然采取欺詐手段。結(jié)合簽約目的、履約能力、履約行為及后果全面分析,其中有的可能只是無(wú)效合同糾紛,有的則可能構(gòu)成合同詐騙罪。
第三,簽約后的態(tài)度特別是對(duì)待違約的態(tài)度如何。一般來(lái)說(shuō),行為人在違約之后,如果表示承擔(dān)違約責(zé)任并積極采取措施補(bǔ)償對(duì)方所受損失的,基本說(shuō)明行為人簽訂合同的目的不是騙取他人財(cái)物,應(yīng)視為合同糾紛。即使行為人有躲債行為,或推卸責(zé)任,為數(shù)量、質(zhì)量、損失等有較大爭(zhēng)執(zhí),但只要其不否認(rèn)自己的違約責(zé)任,仍不能簡(jiǎn)單地認(rèn)定為合同詐騙。只有那種明知自己不可能履行合同,也根本無(wú)履行合同的誠(chéng)意和實(shí)際行動(dòng),簽訂合同取得對(duì)方數(shù)額較大的財(cái)物后溜之大吉或避而不見、百般耍賴,或雖承認(rèn)違約或答應(yīng)賠償,但不見諸行動(dòng),使對(duì)方無(wú)法追回?fù)p失的,才應(yīng)認(rèn)定為利用合同進(jìn)行詐騙犯罪。
第四,對(duì)取得的財(cái)物如何處分,即標(biāo)的物的處置情況。合同當(dāng)事人對(duì)標(biāo)的物的處置情況,在一定程度上反映了其心理態(tài)度。合同糾紛的當(dāng)事人為了按時(shí)履約,往往將貨款用于購(gòu)買原材料,支付工人工資、運(yùn)輸費(fèi)用等合理開支上,或是把貨物加工、銷售、以貨易貨等,這些一般都是為了履約而創(chuàng)造條件。而合同詐騙犯罪行為人由于具有非法所有、占有他人財(cái)物的故意,一旦非法取得了他人財(cái)物的控制權(quán),便任意揮霍,或用來(lái)償還其他債務(wù),或非法用于其他經(jīng)營(yíng),甚至有的攜款潛逃,根本不打算歸還。
第四篇:http協(xié)議介紹(模版)
(二)召開會(huì)議
民主生活會(huì)上,班子成員要緊緊圍繞主題和征求到的意見建議,認(rèn)真開展黨性分析,深入查找問(wèn)題,實(shí)事求是開展批評(píng)與自我批評(píng)。順序?yàn)橄劝嘧?、后個(gè)人,先主要負(fù)責(zé)人、后其他班子成員。黨組織書記要對(duì)班子成員的發(fā)言逐個(gè)進(jìn)行評(píng)議,班子成員之間也要互相進(jìn)行評(píng)議,幫助查找存在的問(wèn)題,提出改進(jìn)的意見建議。
(三)會(huì)后工作。
領(lǐng)導(dǎo)班子要針對(duì)群眾普遍關(guān)心、反映強(qiáng)烈和民主生活會(huì)上查找出來(lái)的問(wèn)題,提出切實(shí)有效的整改措施,明確具體責(zé)任人和整改時(shí)限。班子成員也要制定和落實(shí)個(gè)人整改措施。本次民主生活會(huì)形成的整改措施和干部群眾對(duì)上次民主生活會(huì)形成的整改落實(shí)情況的滿意度,會(huì)后要在一定范圍向干部群眾通報(bào),確保整改措施落到實(shí)處。會(huì)后6天內(nèi)上報(bào)民主生活會(huì)情況報(bào)告,報(bào)告要附有會(huì)前征求到的干部群眾意見材料、會(huì)后制定的整改措施。
六、會(huì)議要求
(一)召開民主生活會(huì),提前10天向街道黨工委報(bào)告,主動(dòng)接受指導(dǎo)和監(jiān)督。
(二)制定落實(shí)整改措施。民主生活會(huì)后,辦公室、黨員領(lǐng)導(dǎo)領(lǐng)導(dǎo)干部要根據(jù)民主生活會(huì)情況,進(jìn)一步查找問(wèn)題,逐項(xiàng)研究,深入分析,制定出切實(shí)可行的整改措施和方案。同時(shí)要把學(xué)習(xí)貫徹黨的十七大精神同同履行崗位職責(zé)結(jié)合起來(lái),切實(shí)轉(zhuǎn)變作風(fēng),做好本職工作,提高工作效率和和工作水平,發(fā)揮好黨員領(lǐng)導(dǎo)干部表率帶動(dòng)作用。
(三)上報(bào)民主生活會(huì)情況。召開民主生活會(huì)的情況、原始記錄、會(huì)前征求意見、整改措施和方案及上次民主生活會(huì)整改措施落實(shí)情況,要及時(shí)上報(bào)街道黨工委備案。
第五篇:HTTP協(xié)議學(xué)習(xí)心得體會(huì)
HTTP協(xié)議學(xué)習(xí)心得體會(huì)
HTTP(HyperText Transfer Protocol)
====================================
是TCP/IP協(xié)議集中的一個(gè)應(yīng)用層協(xié)議,用于定義瀏覽器和Web服務(wù)器之間交換數(shù)據(jù)的過(guò)程以及數(shù)據(jù)本身的格式?,F(xiàn)在被廣泛使用的是HTTP1.1,相對(duì)于1.0,1.1的最大特點(diǎn)是支持持續(xù)連接。
基于HTTP1.0協(xié)議的客戶機(jī)與服務(wù)器的信息交換過(guò)程包括四個(gè)步驟:建立連接;發(fā)送請(qǐng)求信息;回送響應(yīng)信息;關(guān)閉連接。
通信過(guò)程總是通過(guò)瀏覽器發(fā)送請(qǐng)求來(lái)啟動(dòng)的,Web服務(wù)器則是被動(dòng)地對(duì)這些請(qǐng)求作出響應(yīng)。HTTP協(xié)議是無(wú)狀態(tài)的。
HTTP1.1與HTTP1.0的比較
------
HTTP1.0規(guī)定瀏覽器與服務(wù)器只保持短暫的連接,瀏覽器的每次請(qǐng)求都需要與服務(wù)器建立一個(gè)TCP連接,服務(wù)器完成請(qǐng)求處理后立即斷開TCP連接。服務(wù)器不跟蹤每個(gè)客戶機(jī),也不記錄過(guò)去的請(qǐng)求。為了克服HTTP1.0的這個(gè)缺陷,HTTP1.1支持持久連接,在一個(gè)TCP連接上可以傳送多個(gè)HTTP請(qǐng)求和響應(yīng),減少了建立和關(guān)閉連接的消耗和延遲。HTTP1.1還允許客戶端不用等待上一次請(qǐng)求結(jié)果返回,就可以發(fā)送下一次請(qǐng)求,但服務(wù)器端必須按照接受到客戶端請(qǐng)求的先后順序依次回送響應(yīng)結(jié)果,以保證客戶端能夠區(qū)分出每次請(qǐng)求的響應(yīng)內(nèi)容。
HTTP1.1還增加了host請(qǐng)求頭字段,用于明確表示訪問(wèn)服務(wù)器上的哪個(gè)web站點(diǎn),可以在一個(gè)IP地址和端口號(hào)上使用不同的主機(jī)名來(lái)創(chuàng)建多個(gè)虛擬web站點(diǎn)。HTTP1.1還有keep-alive請(qǐng)求頭來(lái)支持持續(xù)連接。
HTTP消息的格式
-----------------------
一個(gè)完整的請(qǐng)求消息包括:一個(gè)請(qǐng)求行,若干消息頭,以及實(shí)體內(nèi)容,其中消息頭和實(shí)體內(nèi)容都是可選的。消息頭和實(shí)體內(nèi)容之間要用空行隔開。瀏覽器使用GET方式的請(qǐng)求消息可以放松不含實(shí)體內(nèi)容的請(qǐng)求消息。只有使用POST, PUT, DELETE方式的請(qǐng)求消息中才可以包含實(shí)體內(nèi)容。
Hypertext Transfer Protocol
GET / HTTP/1.1rn
Request Method: GET
Request URI: /
Request Version: HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap,application/x-shockwave-flash, application/vnd.ms-excel, application/vn
Accept-Language: zh-cnrn
UA-CPU: x86rn
Accept-Encoding: gzip, deflatern
User-Agent: Mozilla/4.0(compatible;MSIE 7.0;Windows NT 6.0;SLCC1;.NET CLR
2.0.50727;.NET CLR 3.0.04506)rn
Connection: Keep-Alivern
rn
一個(gè)完整的響應(yīng)消息包括:一個(gè)狀態(tài)行,若干消息頭,以及實(shí)體內(nèi)容。同樣,消息頭和實(shí)體內(nèi)容都是可選的。消息頭和實(shí)體內(nèi)容之間要用空行隔開。消息響應(yīng)的實(shí)體內(nèi)容就是網(wǎng)頁(yè)文檔的內(nèi)容。
Hypertext Transfer Protocol
HTTP/1.1 200 OKrn
Request Version: HTTP/1.1
Response Code: 200
Cache-Control: privatern
Content-Type: text/html;charset=UTF-8rn
Set-Cookie:
PREF=ID=7f53f6f0b1511417:NW=1:TM=1205568884:LM=1205568884:S=zHreYqNC-Z3rmOc6;expires=Mon, 15-Mar-2010 08:14:44 GMT;path=/;domain=.google.cnrn
Content-Encoding: gziprn
Server: gwsrn
Transfer-Encoding: chunkedrn
Date: Sat, 15 Mar 2008 08:14:44 GMTrn
rn
HTTP chunked response
Data chunk(1025 octets)
Chunk size: 1025 octets
Data(1025 bytes)
HTTP消息頭
----------------
HTTP請(qǐng)求和響應(yīng)都使用消息頭來(lái)描述HTTP消息本身的信息,可以實(shí)現(xiàn)HTTP客戶機(jī)與服務(wù)器之間的條件請(qǐng)求和應(yīng)答。
消息頭可以分為:通用消息頭,請(qǐng)求頭,響應(yīng)頭,實(shí)體頭四類。
請(qǐng)求行與狀態(tài)行
-----------------------
請(qǐng)求消息的請(qǐng)求行包括三個(gè)部分:請(qǐng)求方式,資源路徑,以及使用的HTTP版本。如:GET /
HTTP/1.1rn。
響應(yīng)消息的狀態(tài)行包括三個(gè)部分:HTTP協(xié)議的版本號(hào),一個(gè)表示成功或者失敗的整數(shù)代碼(狀態(tài)碼)和對(duì)狀態(tài)碼進(jìn)行描述的文本信息。如:HTTP/1.1 200 OKrn。
使用GET和POST方式傳遞參數(shù)
-------------
在URL地址后面可以附加一些參數(shù),每個(gè)參數(shù)由參數(shù)名和參數(shù)值組成,例如:當(dāng)使用GET方式提交表單內(nèi)容時(shí),瀏覽器將各個(gè)表單字段元素及其數(shù)據(jù)按照URL參數(shù)的格式附加在請(qǐng)求行中的資源路徑后面。使用GET方式傳送的數(shù)據(jù)量有限制,一般在1KB以下。
當(dāng)使用POST方式提交表單內(nèi)容時(shí),瀏覽器將個(gè)表單字段元素及其數(shù)據(jù)作為HTTP消息的實(shí)體內(nèi)容發(fā)送給服務(wù)器。因此數(shù)據(jù)量可以比GET方式大的多。使用POST方式時(shí),還必須將Content-Type消息頭設(shè)置為“application/x-www-form-urlencoded”,將Content-length消息頭設(shè)置為實(shí)體內(nèi)容的長(zhǎng)度。
響應(yīng)狀態(tài)碼
---------------
1.100~199: 成功接受請(qǐng)求,要求客戶端繼續(xù)提交下一次請(qǐng)求才能完成整個(gè)處理過(guò)程。
2.200~299: 成功接受請(qǐng)求并已完成整個(gè)處理過(guò)程。
3.300~399: 為完成請(qǐng)求,客戶端需要進(jìn)一步細(xì)化請(qǐng)求。
4.400~499: 客戶端的請(qǐng)求有錯(cuò)誤。
5.500~599: 服務(wù)器段出現(xiàn)錯(cuò)誤。
通用信息頭
==============
即能用于請(qǐng)求消息,也能用于響應(yīng)消息,包括一些與被傳輸?shù)膶?shí)體內(nèi)容沒(méi)有關(guān)系的常用消息頭字段。
1.Cache-Control
2.Connection
3.Date
4.Pragma
5.Trailer
6.Transfer-Encoding
7.Upgrade
8.Via
9.Warning
Cache-Control
--------------------
如果位于請(qǐng)求消息頭,用于通知位于客戶機(jī)和服務(wù)之間的代理服務(wù)器如何使用已緩存的頁(yè)面,可以取值為:no-cache, no-store, max-age, max-stale, min-fresh, no-transform, only-if-cached等。
如果位于響應(yīng)消息頭,用于通知客戶機(jī)和代理服務(wù)器如何緩存該頁(yè)面,可以取值為:public, private, no-cache, no-store, no-transform, must-revalidate, proxy-revalidate, max-age, s-maxage等。
Connection
---------------
用于指定處理完本次請(qǐng)求/響應(yīng)后,客戶端與服務(wù)器是否還要繼續(xù)保持連接。如果為Keep-Alive,則保持連接,如果為close,則關(guān)閉。HTTP1.1默認(rèn)采用持久連接。
Date
---------
表示HTTP消息產(chǎn)生的當(dāng)前時(shí)間。服務(wù)器回送的正常響應(yīng)消息中,應(yīng)該總是設(shè)置Date頭字段。如果客戶機(jī)發(fā)送的請(qǐng)求消息中包含有實(shí)體內(nèi)容,也要設(shè)置Date。
Pragma
------------
只能固定為no-cache.Trailer
-----------
一些頭字段可以放置在整個(gè)HTTP消息的尾部。
Transfer-Encoding
---------------------
指定傳輸編碼方式,目前標(biāo)準(zhǔn)的設(shè)置值只有chunked,用于把整個(gè)消息分成一連串的分段后進(jìn)行傳輸。
Upgrade
------------
允許客戶機(jī)指定它所支持并希望將當(dāng)前協(xié)議切換到的通信協(xié)議。
Via
-----
用于指定HTTP消息所途徑的中介代理服務(wù)器名稱和所使用的協(xié)議。
請(qǐng)求頭
=========
客戶端可以接受的數(shù)據(jù)類型,壓縮方法,語(yǔ)言,以及發(fā)出請(qǐng)求的超鏈接所屬頁(yè)面的URL地址等信息。Accept:指出客戶端程序能夠處理的MIME類型。
Accept-Charset:用于指出客戶端程序可以使用的字符集。
Accept-Encoding:客戶機(jī)能夠進(jìn)行解碼的數(shù)據(jù)編碼方式。
Accept-Language:指定客戶機(jī)期望服務(wù)器返回哪個(gè)國(guó)家語(yǔ)言的文檔。
Authorization:兩種認(rèn)證方式BASIC,和DIGEST.Except:
From:
Host: 指定資源所在的主機(jī)號(hào)和端口號(hào)。HTTP1.1中每個(gè)請(qǐng)求消息中都必須包含Host請(qǐng)求字段。If-Match:
If-Modified-Since:
If-None-Match:
If-Range
If-Unmodified-Since
Max-Forwards:
Proxy-Authorization:
Range:
Referer: 當(dāng)單擊另一個(gè)網(wǎng)頁(yè)上的超鏈接時(shí)發(fā)出的請(qǐng)求在Referer字段中指定URL。
TE:
User-Agent:
響應(yīng)頭
==========
Accept-Range, Age, Etag,Location: 用于通知客戶機(jī)應(yīng)當(dāng)?shù)侥膫€(gè)新的地址去獲取文檔。狀態(tài)碼為300~399的響應(yīng)消息都應(yīng)該使用Location字段將新的文檔地址告訴客戶機(jī),以便客戶機(jī)自動(dòng)重新連接到新地址并檢索新文檔。使用Location頭的HTTP消息不應(yīng)該有實(shí)體內(nèi)容。所以,HTTP消息頭中不能同時(shí)出現(xiàn)Location和Content-Type這兩個(gè)頭字段。
Proxy-Authenticate,Retry-After, Server, Vary, WWW-Authenticate。
實(shí)體頭
========
是實(shí)體內(nèi)容的元信息,描述了實(shí)體內(nèi)容的屬性,包括實(shí)體信息類型、長(zhǎng)度、壓縮方法、最后一次修改時(shí)間、數(shù)據(jù)有效期等。
Allow: 指定客戶端請(qǐng)求的資源所支持的請(qǐng)求方法(如GET,POST等)。
Content-Encoding: 指定實(shí)體內(nèi)容的壓縮編碼方式。
Content-Language:
Content-Length: 用于表示實(shí)體內(nèi)容的長(zhǎng)度(字節(jié)數(shù)),瀏覽器與Web服務(wù)器之間使用持久連接時(shí),這個(gè)字段在非Chunked傳輸編碼的響應(yīng)消息中是必不可少的。
Content-Location: 指定響應(yīng)消息中所封裝的實(shí)體內(nèi)容的實(shí)際位置路徑。
Content-MD5, Content-Range, Content-Type
Expires: 指定當(dāng)前文檔應(yīng)該在什么時(shí)候被認(rèn)為過(guò)期,瀏覽器到哪個(gè)時(shí)候以后不能再繼續(xù)使用本地緩存,而是在有需要時(shí)應(yīng)該像服務(wù)器發(fā)出新的請(qǐng)求訪問(wèn)。
Last-Modified:文檔的最后更改時(shí)間。
擴(kuò)展頭
========
現(xiàn)在流行的瀏覽器實(shí)際上都支持Cookie,Set-Cookie,Refresh和Content-Disposition等幾個(gè)常用的擴(kuò)展頭字段。
Refresh: 告訴瀏覽器多少秒后自動(dòng)刷新頁(yè)面。