什么是HTTP協議? 協議是指計算機通信網絡中兩臺計算機之間進行通信所必須共同遵守的規定或規則,超文本傳輸協議(HTTP)是一種通信協議,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器 HTTP協議的主要特點可概括如下: 1.支持客戶/服務器模式。 2.簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由于HTTP協議簡單,使得HTTP服務器的程序規模小,因而通信速度很快。 3.靈活:HTTP允許傳輸任意類型的數據對象。正在傳輸的類型由Content-Type加以標記。 4.無連接:無連接的含義是限制每次連接只處理一個請求。服務器處理完客戶的請求,并收到客戶的應答后,即斷開連接。采用這種方式可以節省傳輸時間。 5.無狀態:HTTP協議是無狀態協議。無狀態是指協議對于事務處理沒有記憶能力。缺少狀態意味著如果后續處理需要前面的信息,則它必須重傳,這樣可能導致每次連接傳送的數據量增大。另一方面,在服務器不需要先前信息時它的應答就較快。 Web服務器,瀏覽器,代理服務器 瀏覽器發送請求,Web服務器收到請求后給予響應,做出處理,并且發送處理結果Response給瀏覽器,瀏覽器收到后再頁面中展示出來。如果檢測出收到的結果中包含CSS,圖片等文件,可能需要多次請求瀏覽器才能在網頁上完整展現出來。 我們的Request 有可能是經過了代理服務器,最后才到達Web服務器的。 過程如下圖所示
代理服務器就是網絡信息的中轉站,有什么功能呢? 1. 提高訪問速度, 大多數的代理服務器都有緩存功能。 2. 突破限制, 也就是FQ了 3. 隱藏身份。 URL詳解 URL(Uniform Resource Locator) 地址用于描述一個網絡上的資源, 基本格式如下 schema://host[:port#]/path/…/[?query-string][#anchor] scheme 指定低層使用的協議(例如:http, https, ftp) host HTTP服務器的ip地址或者域名 port# HTTP服務器的默認端口是80,這種情況下端口號可以省略。如果使用了別的端口,必須指明,例如 http://www.cnblogs.com:8080/ path 訪問資源的路徑 query-string 發送給http服務器的數據 anchor- 錨
URL 的一個例子 http://www.mywebsite.com/sj/test/test.aspx?name=sviergn&x=true#stuff Schema: http host: www.mywebsite.com path: /sj/test/test.aspx Query String: name=sviergn&x=true Anchor: stuff HTTP協議是無狀態的 http協議是無狀態的,同一個客戶端的這次請求和上次請求是沒有對應關系,對http服務器來說,它并不知道這兩個請求來自同一個客戶端。 為了解決這個問題, Web程序引入了Cookie機制來維護狀態 打開一個網頁需要瀏覽器發送很多次Request 1. 當你在瀏覽器輸入URL http://www.cnblogs.com 的時候,瀏覽器發送一個Request去獲取 http://www.cnblogs.com 的html. 服務器把Response發送回給瀏覽器. 2. 瀏覽器分析Response中的 HTML,發現其中引用了很多其他文件,比如圖片,CSS文件,JS文件。 3. 瀏覽器會自動再次發送Request去獲取圖片,CSS文件,或者JS文件。 4. 等所有的文件都下載成功后。 網頁就被顯示出來了。 使用fiddler捕捉瀏覽器請求 Get和Post方法的區別 Http協議定義了很多與服務器交互的方法,最基本的有4種,分別是GET,POST,PUT,DELETE. 一個URL地址用于描述一個網絡上的資源,而HTTP中的GET, POST, PUT, DELETE就對應著對這個資源的查,改,增,刪4個操作。 我們最常見的就是GET和POST了。GET一般用于獲取/查詢資源信息,而POST一般用于更新資源信息. HTTP請求方法
我們看看GET和POST的區別
GET提交的數據會放在URL之后,以?分割URL和傳輸數據,參數之間以&相連,如EditPosts.aspx?name=test1&id=123456. POST方法是把提交的數據放在HTTP包的Body中.
GET提交的數據大小有限制(因為瀏覽器對URL的長度有限制),而POST方法提交的數據沒有限制.
GET方式需要使用Request.QueryString來取得變量的值,而POST方式通過Request.Form來獲取變量的值。
GET方式提交數據,會帶來安全問題,比如一個登錄頁面,通過GET方式提交數據時,用戶名和密碼將出現在URL上,如果頁面可以被緩存或者其他人可以訪問這臺機器,就可以從歷史記錄獲得該用戶的賬號和密碼.
新聞熱點
疑難解答