1. 程式人生 > >6.22心得

6.22心得

osi map 分區 重傳 接收 路由 lin 校驗 lec

http協議
超文本傳輸協議(HTTP,HyperText Transfer Protocol)是互聯網上應用最為廣泛的
一種網絡協議。所有的WWW文件都必須遵守這個標準。設計HTTP最初的目的是為了提供
一種發布和接收HTML頁面的方法。1960年美國人Ted Nelson構思了一種通過計算機處理
文本信息的方法,並稱之為超文本(hypertext),這成為了HTTP超文本傳輸協議標準架
構的發展根基。Ted Nelson組織協調萬維網協會(World Wide Web Consortium)和互
聯網工程工作小組(Internet Engineering Task Force )共同合作研究,最終發布了
一系列的RFC,其中著名的RFC 2616定義了HTTP 1.1。
HTTP是一個客戶端和服務器端請求和應答的標準(TCP)。客戶端是終端用戶,服務器端
是網站。通過使用Web瀏覽器、網絡爬蟲或者其它的工具,客戶端發起一個到服務器上指
定端口(默認端口為80)的HTTP請求。

TCP
TCP(Transmission Control Protocol 傳輸控制協議)是一種面向連接的、可靠的、基
於字節流的傳輸層通信協議,由IETF的RFC 793定義。在簡化的計算機網絡OSI模型中,它
完成第四層傳輸層所指定的功能,用戶數據報協議(UDP)是同一層內[1] 另一個重要的
傳輸協議。在因特網協議族(Internet protocol suite)中,TCP層是位於IP層之上,應
用層之下的中間層。不同主機的應用層之間經常需要可靠的、像管道一樣的連接,但是IP
層不提供這樣的流機制,而是提供不可靠的包交換。
應用層向TCP層發送用於網間傳輸的、用8位字節表示的數據流,然後TCP把數據流分區成適
當長度的報文段(通常受該計算機連接的網絡的數據鏈路層的最大傳輸單元([1] MTU)
的限制)。之後TCP把結果包傳給IP層,由它來通過網絡將包傳送給接收端實體[1] 的TCP
層。TCP為了保證不發生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體
的包的按序接收。然後接收端實體對已成功收到的包發回一個相應的確認(ACK);如果發送
端實體在合理的往返時延(RTT)內未收到確認,那麽對應的數據包就被假設為已丟失將會被
進行重傳。TCP用一個校驗和函數來檢驗數據是否有錯誤;在發送和接收時都要計算校驗和。
在擁塞控制上,采用廣受好評的TCP擁塞控制算法(也稱AIMD算法)。該算法主要包括三個主
要部分:1)加性增、乘性減;2)慢啟動;3)對超時事件做出反應。
實行標準
TCP/IP(Transmission Control Protocol/Internet Protocol) 即傳輸控制協議/網間協議,
是一個工業標準的協議集,它是為廣域網(WAN)設計的。它是由ARPANET網的研究機構發展起來的。
TCP三次握手的過程如下:
客戶端發送SYN(SEQ=x)報文給服務器端,進入SYN_SEND狀態。
服務器端收到SYN報文,回應一個SYN (SEQ=y)ACK(ACK=x+1)報文,進入SYN_RECV狀態。
客戶端收到服務器端的SYN報文,回應一個ACK(ACK=y+1)報文,進入Established狀態。
三次握手完成,TCP客戶端和服務器端成功地建立連接,可以開始傳輸數據了。
註意:
(1) “通常”是指,某些情況下,步驟1的FIN隨數據一起發送,另外,步驟2和步驟3發送的分節都出
自執行被動關閉那一端,有可能被合並成一個分節。
(2) 在步驟2與步驟3之間,從執行被動關閉一端到執行主動關閉一端流動數據是可能的,這稱為“半關
閉”(half-close)。
(3) 當一個Unix進程無論自願地(調用exit或從main函數返回)還是非自願地(收到一個終止本進程
的信號)終止時,所有打開的描述符都被關閉,這也導致仍然打開的任何TCP連接上也發出一個FIN。

IP
網絡之間互連的協議(IP)是Internet Protocol的外語縮寫,[1] 中文縮寫為“網協”.
網絡之間互連的協議也就是為計算機網絡相互連接進行通信而設計的協議。
IP地址具有唯一性,根據用戶性質的不同,可以分為5類。另外,IP還有進入防護,知識產權,指針寄存器等含義。
IP協議三個定義:
  (1)IP定義了在TCP/IP互聯網上數據傳送的基本單元和數據格式。
  (2)IP軟件完成路由選擇功能,選擇數據傳送的路徑。
  (3)IP包含了一組不可靠分組傳送的規則,指明了分組處理、差錯信息發生以及分組的規則。
IP數據包:聯網的基本傳送單元是IP數據包,包括數據包頭和數據區部分。
IP地址分為五類,A類保留給政府機構,B類分配給中等規模的公司,C類分配給任何需要的人,D類用
於組播,E類用於實驗,各類可容納的地址數目不同。
A、B、C三類IP地址的特征:當將IP地址寫成二進制形式時,A類地址的第一位總是0,B類地址的前兩
位總是10,C類地址的前三位總是110。
實體IP
在網絡的世界裏,為了要辨識每一部計算機的位置,因此有了計算機 IP 位址的定義。一個 IP 就好
似一個門牌!例如,你要去微軟的網站的話,就要去『 64.4.11.42 』這個 IP 位置!這些可以直接
在網際網絡上溝通的 IP 就被稱為『實體 IP 』了。
虛擬IP
不過,眾所皆知的,IP 位址僅為 xxx.xxx.xxx.xxx 的資料型態,其中, xxx 為 1-255 間的整數,
由於計算機的成長速度太快,實體的 IP 已經有點不足了,好在早在規劃 IP 時就已經預留了三個
網段的 IP 做為內部網域的虛擬 IP 之用。
代理IP就是代理服務器,英文全稱是Proxy Server,其功能就是代理網絡用戶去取得網絡信息。

window.onclick
onclick 事件會在對象被點擊時發生。
請註意, onclick 與 onmousedown 不同。單擊事件是在同一元素上發生了鼠標按下事件之後
又發生了鼠標放開事件時才發生的。
支持該事件的 HTML 標簽:
<a>, <address>, <area>, <b>, <bdo>, <big>, <blockquote>, <body>, <button>,
<caption>, <cite>, <code>, <dd>, <dfn>, <div>, <dl>, <dt>, <em>, <fieldset>,
<form>, <h1> to <h6>, <hr>, <i>, <img>, <input>, <kbd>, <label>, <legend>,
<li>, <map>, <object>, <ol>, <p>, <pre>, <samp>, <select>, <small>, <span>,
<strong>, <sub>, <sup>, <table>, <tbody>, <td>, <textarea>, <tfoot>, <th>,
<thead>, <tr>, <tt>, <ul>, <var>
支持該事件的 JavaScript 對象:
button, document, checkbox, link, radio, reset, submit

innerHTML
innerHTML在JS是雙向功能:獲取對象的內容 或 向對象插入內容;
對於innerHTML 屬性,幾乎所有的元素都有innerHTML屬性,它是一個字符串,
用來設置或獲取位於對象起始和結束標簽內的HTML。(獲取HTML當前標簽的起始和結束裏面的內容)
代碼
<html>
<head>
<script type="text/javascript">
function getInnerHTML() {
alert(document.getElementById("tr1").innerHTML);
}
</script>
</head>
<body>
<table border="1">
<tr id="tr1"><td>Firstname</td><td>Lastname</td></tr>
<tr id="tr2"><td>Peter</td><td>Griffin</td></tr>
</table>
<br />
<input type="button" onclick="getInnerHTML()" value="Alert innerHTML of table row" />
</body>
</html>
運行結果:
<td>Firstname</td>
<td>Lastname</td>
註意:innerHTML不可寫為innerHtml或是其他形式,大小寫要嚴格遵守,不然無法獲取或者設置數據。

innerText
innerText和innerHtml是用於在頁面上輸出要現實的信息的。
test.innerHTML:
  也就是從對象的起始位置到終止位置的全部內容,包括Html標簽。
test.innerText:
  從起始位置到終止位置的內容, 但它去除Html標簽
test.outerHTML:
  除了包含innerHTML的全部內容外, 還包含對象標簽本身。
innerHTML是符合W3C標準的屬性,而innerText只適用於IE瀏覽器,因此,盡可能地去使用
innerHTML,而少用innerText,如果要輸出不含HTML標簽的內容,可以使用innerHTML取得
包含HTML標簽的內容後,再用正則表達式去除HTML標簽,下面是一個簡單的符合W3C標準的示例:

<a href="javascript:alert(document.getElementById(‘test‘).innerHTML.replace
(/<.+?>/gim,‘‘))">無HTML,符合W3C標準</a>
代碼
<html>
<head></head>
<frameset frameborder="yes" frameborder="1" rows="40%,*">
<frame name="top" src="1.html">
<frame name="bottom" src="2.html">
</frameset>
</html>

<html>
<head>
<script language="javascript">
function init()
{
var aaa = parent.window.frames[0].document.body.innerHTML;
alert(aaa);
}
</script>
</head>

6.22心得