- HTML: (HyperText Markup Language 超文字標記語言) 瀏覽器必須了解的語言。瀏覽器是一種知道如何和伺服器溝通的軟體(如Safari, Mozilla)。當伺服器回應請求的時候,通常會傳給瀏覽器一組以HTML寫成的指令,由瀏覽器解譯HTML後將內容呈現給使用者。但有時候較舊版的瀏覽器可能會不了解使用新版HTML語法所寫的網頁內容
- HTTP: (HyperText Transport Language 超文字傳輸協定) client及server之間的對話大多是HTTP(以此溝通),此協定支援簡單的request&response。基本上web說的語言就是HTTP。web server透過HTTP將HTML送給client。因此其實HTTP回應內包含HTML
又,HTTP執行在TCP/IP上。
- TCP負責將資料完整地從一個node傳送到另一個node。在運送過程有可能會被分割成幾個部分。但最後能保有完整性。
- IP是將封包從一台主機順利繞道一台主機的底層網路協定。
HTTP是支援web特定功能的網路協定。但依賴TCP/IP取得完整請求與回應
HTTP request關鍵元素:
- HTTP method
- URL
- Form parameters
HTTP response關鍵元素:
- Status Code
- Content-type
- Content
HTTP method:
- GET: 簡單的請求。如,要求server取出資源(HTML, JPEG file, PDF file等)。但也可以傳送(一點)資源
- 傳送字元數量有限,取決於server(tomcat在conf/server.xml內可更改maxHttpHeaderSize="65536"參數),因此如果client在search bar輸入很長的資料,GET可能會無法運作
- 安全性問題,GET會將資量附加在URL後面,出現在瀏覽器的URL欄位中。如帳號密碼等敏感資料
- 如果使用POST代替GET,就不能把Form submission的頁面加入我的最愛當成書籤
- 下例是一個GET的範例,使用?將路徑與參數隔開,參數間以&連結。兩個部分加起來得到的字串就是HTTP request所傳送的完整URL
- POST: 像是Get的加強版,如了可以取出server資源,以能夠傳送使用者的資料。
- 設計為傳送複雜請求
- 使用者在網頁上填的資料(如表單等),就會被加到message body (或稱為payload),資料量可以很大
- HEAD
- TRACE
- PUT
- DELETE
- OPTIONS
- CONNECT
http://ecshweb.pchome.com.tw/search/v3.3/?q=花茶%20&scope=all&sortParm=rnk&sortOrder=dc&cateId=DBAJ11
response header內的content type的值,就是MIME Type,他告知接收瀏覽器即將要接收怎麼樣的資料,好讓瀏覽器知道要怎麼展示
此值對應了request內header的Accept欄位(瀏覽器可以接受哪一種格式)
網頁傳送步驟:
- 使用者在search bar輸入URL
- 瀏覽器建立HTTP GET request
- 瀏覽器將此HTTP GET 請求傳送至server
- server根據某種對應關係找到該頁面
- server產生HTTP response
- 將其頁面傳回至client
- 瀏覽器收到後,根據HTTP內的HTML解譯,並將結果呈現給使用者
URL:(Uniform Resource Locator)
如下範例:
https://www.wangsteak.com.tw:443/advice/wang/menu.html
- https: (告訴server這是哪一種protocal,此例為https)
- www.wangsteak.com.tw: server, 實體server的獨特名字,對應到IP,可以直接使用IP代替server,但通常domain name比較好記
- 443: port。server的很多應用程式會以port區隔。http預設是80
- 一台server可以有0-65535,共65536個 (0~1023 port已經保留給一些知名的服務)
- FTP: 21
- Telnet: 23
- POP3: 110
- SMTP: 25
- TIME server: 37
- advice/wang: path,server被請求的網路位置
- menu.html: resource,請求的檔案。假如被省略大部分會預設加上index.html
沒有留言:
張貼留言