如何理解web通信?

分析URL結(jié)構(gòu)

我們實際應(yīng)該要把瀏覽器與服務(wù)器交互的過程,看作是一個長距離文件傳輸?shù)倪^程,根據(jù)Unix提出的思想,一切皆是文件,服務(wù)器做的事情,只是儲存這些文件,并在我們提出要求時,查詢并找到這些文件,再發(fā)送給客戶端瀏覽器實現(xiàn)渲染的過程。而這些交互過程需要一個統(tǒng)一的規(guī)范,也就是協(xié)議,Internet使用的是HTTP協(xié)議。而傳遞文件前,發(fā)出的請求或做出的回應(yīng),便是請求/回應(yīng)行,這是對用戶查詢行為的一種翻譯。用戶的行為可能體現(xiàn)在與瀏覽器表單的交互,也有可能是直接修改URL。

1.URL的組成部分由 協(xié)議 + 主機(jī)名(:端口(訪問本地時可指定))+文件目錄 組成

例如:http://www.baidu.com/ 可看做是 http協(xié)議 + www.baidu.com主機(jī) +/ 文件目錄組成

在文件目錄中

使用?代表查詢字符,當(dāng)頁面URL出現(xiàn)當(dāng)前字符時,說明發(fā)送或返回到了包含查詢信息的頁面。?q=xxx (q是query即查詢的縮寫,但有的網(wǎng)頁需要使用tx?query=xxx之流)

使用#代表頁面錨點,當(dāng)頁面出現(xiàn)這一部分時,這一部分并沒有和主機(jī)發(fā)生交互,是在客戶端瀏覽器內(nèi)部實現(xiàn)了定位。

2.HTTP協(xié)議?

當(dāng)與服務(wù)器發(fā)生交互時,客戶端會發(fā)送一條請求行,開頭格式為

方法 + 請求的頁面在主機(jī)文件目錄中的位置 +協(xié)議版本

例如:GET /index HTTP/1.1

意思就是查詢 服務(wù)端文件目錄下/index文件 使用HTTP1.1協(xié)議版本?

方法有g(shù)et/post ? ? 文件目錄中不會出現(xiàn)#符號 ?協(xié)議版本可能也會有1.0

3.完成一條請求頭

GET /index HTTP/1.1 方法和文件目錄和版本

Host:www.example.com 請求的主機(jī)位置

User-Agent:chrome 你的代理服務(wù)器/也可以隨便寫

還可以按照自己的意愿再請求頭中加一些自定義內(nèi)容,不過需要遵守格式規(guī)范

4.完成一條回應(yīng)頭

HTTP:/1.1 ?200 OK ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分別對應(yīng) 協(xié)議版本 +狀態(tài)碼+狀態(tài)碼原因

Date:Tue Mar 2012 04:33:33 GMT

Server: Apache/2.2.3 ? ? ? ? ? ? ? ? ? ? ? ? ? ?服務(wù)器版本

Content-type: text/html ? ? ? ? ? ? ? ? ? ? ? ? ?返回的內(nèi)容類型

Content-Length: ?1539 ? ? ? ? ? ? ? ? ? ? ? ? ? 返回的內(nèi)容實體長度

//常見狀態(tài)碼 200 OK 302 Found 404 Not Found 500 Server Error

5.Web Application原理簡析

? ? ? ?在90年代,服務(wù)器中需要返回的頁面資源全部被稱為static靜態(tài)資源,不需要

服務(wù)端的加載,而是預(yù)先寫好的,因而不能存在交互功能,比如,網(wǎng)絡(luò)聊天室,

個人博客等,都無法實現(xiàn),就像上世紀(jì)的地區(qū)黃頁一樣。

? ? ? ?而在如今,需要被訪問的頁面和交互效果都是由動態(tài)請求申請獲取的。因而

他們都是動態(tài)的被加載出來的(build on the fly)。而加載這些動態(tài)頁面,動態(tài)

生成內(nèi)容的媒介,則被稱為網(wǎng)絡(luò)應(yīng)用程序(Web Application)。

6.在查詢有空格的字段時,系統(tǒng)會為空格加上+號

7.使用get方法可以使用緩存,而post方法并沒有,get方法不應(yīng)該改變服務(wù)器

情況,post則被允許可以。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,578評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,094評論 25 709
  • 先討論許多應(yīng)用協(xié)議都要使用的域名系統(tǒng)。在介紹了文件傳送協(xié)議和遠(yuǎn)程登錄協(xié)議后,就重點介紹萬維網(wǎng)的工作原理及其主要協(xié)議...
    dmmy大印閱讀 1,316評論 0 1
  • 知道簡書這個平臺已經(jīng)很久了,早在去年十二月份的時候親愛的杜杜就推薦我用,但是無奈宿舍沒網(wǎng),自己又因為亂七八糟...
    YNuoWang閱讀 283評論 5 4
  • 第一次畫,好粗糙,圓畫得不圓,扁了,貓耳朵好像畫大了,沒有高光筆點綴,就這樣吧,希望以后能一點一點進(jìn)步,越過越好,...
    小食妹閱讀 466評論 0 1

友情鏈接更多精彩內(nèi)容