首先,糾正一下我以前一直誤解的概念,我一直以為http和tcp是兩種不同的,但是地位對等的協議,雖然知道tcp是傳輸層,而http是應用層今天學習了下,知道了http是要基於tcp連線基礎上的,簡單的說,tcp就是單純建立連線,不涉及任何我們需要請求的實際資料,簡單的傳輸。http是用來收發資料,即實際應用上來的。
第一:從傳輸層,先說下tcp連線,我們要和服務端連線tcp連線,需要通過三次連線,包括:請求,確認,建立連線。即傳說中的「三次握手協議」。
第一次:c傳送乙個請求連線的位碼syn和乙個隨機產生的序列號給seq,然後s收到了這些資料。
第二次:s收到了這個請求連線的位碼,啊呀,有人向我發出請求了麼,那我要不要接受他的請求,得實現確認一下,於是,傳送了乙個確認碼 acn(seq+1),和syn,seq給c,然後c收到了,這個是第二次連線。
第三次:c收到了確認的碼和之前傳送的syn一比較,偶喲,對上了麼,於是他又傳送了乙個acn(seq+1)給s,s收到以後就確定建立連線,至此,tcp連線建立完成。
簡單就是:請求,確認,連線。
第二:從實際上的資料應用來說http:
在前面客戶端和應用伺服器建立tcp連線之後,就需要用http協議來傳送資料了,http協議簡單來說,還是請求,確認,連線。
總體就是c傳送乙個http請求給s,s收到了這個http請求,然後返回給chttp響應,然後c的中介軟體或者說瀏覽器把這些資料渲染成為了網頁,展示在使用者面前。
第一:傳送乙個http請求給s,這個請求包括請求頭和請求內容:
request header:
包括了,1.請求的方法是post/get,請求的url,http協議版本2.請求的資料,和編碼方式3是否有cookie和cooies,是否快取等。
post和get請求方式的區別是,get把請求內容放在url後面,但是url長度有限制。而post是以表單的形勢,適合要輸入密碼之類的,因為不在url中顯示,所以比較安全。
request body:
即請求的內容.
第二:s收到了http請求,然後根據請求頭,返回http響應。
response header:包括了1.cookies或者sessions2.狀態嗎3.內容大小等
response body:
即響應的內容,包括,js什麼的。
第三,c收到了以後,就由瀏覽器完成一系列的渲染,包括執行js指令碼等。
這就是我所理解的webtcp,http基礎知識,待續。。。。。
TCP和http學習筆記(入門概念)
首先,糾正一下我以前一直誤解的概念,我一直以為http和tcp是兩種不同的,但是地位對等的協議,雖然知道tcp是傳輸層,而http是應用層今天學習了下,知道了http是要基於tcp連線基礎上的,簡單的說,tcp就是單純建立連線,不涉及任何我們需要請求的實際資料,簡單的傳輸。http是用來收發資料,即...
LESS學習筆記 入門
今天在網上完成了less的基礎學習,下面是我的學習筆記。總共有三個檔案 index.html main.less mian.css,其中mian.css是main.less經過koala編譯之後自動生成的。下面是 index.html mian.less charset utf 8 body div...
Yii學習筆記(入門)
use yii db activerecord class a extends activerecord hello,i am only page.1 初始化應用 訪問http localhost basic web index.php,進入yii的啟動頁面。如果提示你未安裝openssl的話,去你...