應用層:負責應用程式之間的溝通
結構化傳輸協議:(方便資料式的組織與解析)
1.作用:傳輸檔案,網頁
採用tcp協議(tcp協議詳解:
2.url:統一資源定位符
相對路徑是根目錄下的相對路徑
3.urlencode(編碼) 和urldecode(解碼)
乙個字元8位,前4位-->編成1位,後4位-->編成1位,再加上%。
0000 0000 + 0010 1011 eg:c++ ---> c%2b%2b
前四位轉換成乙個十六進製制的數字 2
後四位轉換成乙個十六進製制的數字 b
4.http協議格式(四部分):
請求request:
1)首行:請求方法 url 協議版本號\r\n
請求方法:post:提交資料有正文。將請求放在正文(body)裡(key=val&key=val)
get:請求資源沒有正文,提交資料在url(urlencode)
(query_string查詢字串)中。(資料長度有限 )
get和post乙個重要的區別:
get產生乙個tcp資料報,post產生兩個tcp資料報。時間上:post比get消耗時間多。
2)請求頭(header):請求的屬性,冒號分割的鍵值對。
格式:key: val\r\n key: val\r\n
key冒號空格val換行
每行為乙個關鍵資訊,用「\r\n」(windows下)間隔,每一行資訊由鍵(key)
值(value)對組成
user-agent:將作業系統和瀏覽器的資訊告訴伺服器
content-type:正文型別(格式)
content-length:指定正文長度(一次性傳送)
cache-control:快取大小
accept-encoding:所能接收的資料格式
accept-language:能接受的語言
cookie:(最多300個,4k)儲存會話或是瀏覽資訊
set-cookie:儲存某些瀏覽器的資訊
referer:當前的請求從哪個網頁跳轉的
連續接收兩個「\r\n」表示請求頭請求接收
3)空格:用於間隔請求頭header與body正文
4)body:向伺服器傳送的正文(可以是空字串)。如果body存在,header中會有
乙個connect-length屬性來標識body的長度。
響應response
1)首行:協議版本號 響應狀態碼 狀態碼描述
響應狀態碼:1開頭(通知)
2開頭(響應成功)
3開頭(重定向 301:永久重定向 302:臨時重定向)
4開頭(客戶端錯誤 404:沒找到 403:forbidden)
5開頭(服務端錯誤)
2)header:
格式:key: val\r\n key: val\r\n
key冒號空格val換行
location:以3開頭的重定向的位置,表示下一次在**顯示
transfer-encoding:傳輸方式
chunked:分次傳送,最後大小以0 結束
expires:生存週期
3)空行:用於間隔請求頭header與body正文
4)body:向伺服器傳送的正文(可以是空字串)。如果body存在,header中會有
乙個connect-length屬性來標識body的長度。如果伺服器返回了乙個html介面,
那麼html頁面內容就是在body中。
5.http和https的區別:
1) https協議需要到ca申請證書,一般免費證書比較少,因而需要一定費用。
2) http是超文字傳輸協議,資訊是明文傳輸,https則是具有安全性的ssl 加密傳輸協議。
3) http和https使用的是完全不同的連線方式,用的埠號也不一樣,http是80埠,https是443埠。
4)http的連線很簡單,是無狀態的;https協議是由ssl+http協議構建的可進行加密傳輸,身份認證的網路協議,比http更加安全。
6.cookie和session的區別
1) cookie存放在客戶端,伺服器能夠知道其中的資訊。
session儲存在伺服器端,客戶端不知道其中的資訊,一般以檔案的形式儲存,不同的使用者訪問會產生不同的session_id, session_id是該session值的唯一標示。
2) session中儲存的是物件,cookie中儲存的是字串.
3) session不能區分路徑,同乙個使用者在訪問乙個**期間,所有的session在任何乙個地方都可以訪問到.
cookie中如果設定了路徑引數,那麼同乙個**中不同路徑下的cookie互相是訪問不到的。
7.get和post的比較
(1)get是從伺服器端獲取資料,post則是向伺服器端傳送資料。
(2)在客戶端,get方式通過url提交資料,在url位址列可以看到請求訊息,該訊息被編碼過;post資料則是放在html header內提交。
(3)對於get方式,伺服器端用request.querystring獲取變數的值;對用post方式,伺服器端用request.form獲取提交的資料值。
(4)get方式提交的資料最多1024位元組,而post則沒有限制。
(5)get方式提交的引數及引數值會在位址列顯示,不安全,而post不會,比較安全。
應用層 HTTP協議
應用層 應用層和應用程式直接相關,這是和程式設計師打交道最多的地方。自定製協議 不重要 1 約定好客戶端請求 request 包含什麼資訊,伺服器響應 response 包含什麼資訊 2 約定好資料按照什麼格式來組織,本質上網際網路傳輸的都是 二進位制 字串 序列化 反序列化 已有協議 重要 htt...
應用層協議 HTTP
http通常用於瀏覽器請求web 詳細參見 http 1.1協議中共定義了八種方法 也叫 動作 來以不同方式操作指定的資源 gethead 與get方法一樣,都是向伺服器發出指定資源的請求。只不過伺服器將不傳回資源的本文部分。它的好處在於,使用這個方法可以在不必傳輸全部內容的情況下,就可以獲取其中 ...
HTTP 應用層協議
我們先了解一下http是什麼 http hypertext transfer protocol 超文字傳輸協議 http就是檔案傳輸的乙個協議,屬於應用層協議,使用tcp作為它的支撐傳輸協議 http是web的核心,web客戶端和web服務端通過交換http報文進行檔案傳輸 我們看一下客戶端是如何使...