專題-HTTP

                                                                          HTTPweb

  1. HTTPHyperText Transfer Protocol超文本傳輸協議)瀏覽器

    [1]TCP+80緩存

    [2]狀態碼:安全

      i.1XX:表示請求已經接受,繼續處理請求服務器

      ii.2XX:請求已經完成處理,例:cookie

        a)200請求已經正常處理完畢session

      iii.3XX:表示把請求的URL定位到其它目錄,例:併發

        b)301請求永久重定向分佈式

        c)302請求臨時重定向性能

        d)304請求被重定向到客戶端本地緩存

      iv.4xx:客戶端出現錯誤,例:

        a)400客戶端請求存在語法錯誤

        b)401客戶端請求沒有通過受權

        c)403客戶端的請求被服務器拒絕,通常是沒有權限

        d)404客戶端請求的URL在服務器不存在

      v.5XX:服務器端出現錯誤,例:

        a)500服務器端發生永久錯誤

        b)503服務器端發生臨時錯誤

    [3]分佈式,萬維網

  2.HTTPS

    通訊過程:非對稱加密和對稱加密SSL(位於應用層和傳輸層之間);端口TCP+443;

  3.無狀態協議

    無狀態是指協議對於事務處理沒有記憶能力,服務器不知道客戶端是什麼狀態。

    因爲Web服務器要面對不少瀏覽器的併發訪問,爲了提升Web服務器對併發訪問的處理能力。

  4.鏈接(connection

    Connection: keep-alive(保持鏈接) 當一個網頁打開完成後,客戶端和服務器之間用於傳輸HTTP數據的TCP鏈接不會關閉,若是客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經創建的鏈接(可設定時間)。

    Connection: close 表明一個Request完成後,客戶端和服務器之間用於傳輸HTTP數據的TCP鏈接會關閉,當客戶端再次發送Request,須要從新創建TCP鏈接。

  5.請求方法

GET

向特定的資源發出請求

HEAD

相似於 GET 請求,只不過返回的響應中沒有具體的內容,用於獲取報頭

POST

向指定資源提交數據進行處理請求(例如提交表單或者上傳文件)。數據被包含在請求體中。POST 請求可能會致使新的資源的創建和/或已有資源的修改。

PUT

向指定資源位置上傳其指定內容

PATCH

是對 PUT 方法的補充,用來對已知資源進行局部更新 。

DELETE

請求服務器刪除Request-URL所標識的資源

CONNECT

HTTP/1.1 協議中預留給可以將鏈接改成管道方式的代理服務器。

OPTIONS

返回服務器針對特定資源所支持的HTTP請求方法。也能夠利用向Web服務器發送'*'的請求來測試服務器的功能性。

TRACE

回顯服務器收到的請求,主要用於測試或診斷。

  6.GETPOST的區別  

    [1]     位置不一樣:GET提交的數據會放在URL以後,以?分割URL和傳輸數據,參數之間以&相連,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的數據放在HTTP包的主體中。

    [2]     大小限制:GET提交的數據大小有限制,由於瀏覽器對URL的長度有限制,而POST方法提交的數據沒有限制。

    [3]     安全問題:GET方式提交數據,會帶來安全問題,好比一個登陸頁面,經過GET方式提交數據時,用戶名和密碼將出如今URL上。

  7.工做流程

    [1]     No1:瀏覽器(192.168.1.6)向服務器(115.239.210.36)發出鏈接請求。此爲TCP三次握手第一步,此時從圖中能夠看出,爲SYN,seq:X (x=0);

    [2]     No2:服務器(115.239.210.36)迴應了瀏覽器(192.168.1.6)的請求,並要求確認,此時爲:SYN,ACK,此時seq:y(y爲0),ACK:x+1(爲1)。此爲三次握手的第二步;

    [3]     No3:瀏覽器(192.168.1.6)迴應了服務器(115.239.210.36)的確認,鏈接成功。爲:ACK,此時seq:x+1(爲1),ACK:y+1(爲1)。此爲三次握手的第三步;

    [4]     No4:瀏覽器(192.168.1.6)發出一個頁面HTTP請求;

    [5]     No5:服務器(115.239.210.36)確認;

    [6]     No6:服務器(115.239.210.36)發送數據;

    [7]     No8:客戶端瀏覽器(192.168.1.6)確認;

    [8]     斷TCP鏈接(若是設置keep-alive保持鏈接)

  8.請求信息

    請求行(請求方法/URL/協議版本)、消息報頭(字段名/值)、空行(報頭髮送完畢)、請求正文

  9.響應消息

    狀態行(協議版本/狀態碼/狀態消息)、消息報頭、空行、響應正文

  10.解決HTTP無狀態的問題

    [1]     Cookies:經過Cookies,服務器就能夠清楚的知道請求2和請求1來自同一個客戶端

    [2]     Session(會話)ID:服務器客戶端建立一個session id

    [3]     經過表單變量和QueryString保持狀態,例:www.xxx.com/xxx.aspx?var1=value&var2=value2

    [4]     區別:Cookies將狀態保存再在客戶端,Session將狀態保存在服務器端;Session更加安全不會任意讀取客戶信息;考慮到減輕服務器性能方面,應當使用cookies。

  11.URL

    [1]     協議://主機:[端口]/路徑/[;url-params][?query-string][#anchor]例:http://www.mywebsite.com/sj/test;id=8079?name=sviergn&x=true#stuff

       12.緩存

    [1]     緩存做用:減小的帶寬消耗和延遲

    [2]     客戶端緩存:未修改返回304(請求被重定向到客戶端本地緩存)

    [3]     WEB代理:validation(驗證)或者Freshness指定緩存最長時間。

  13.  斷點續傳

    採用分段的原理,只請求未下載的部分

相關文章
相關標籤/搜索