android rtsp协议转http协议_网络协议HTTP 协议(一)
HTTP協議?是一種無狀態的、應用層的、以請求/應答方式運行的協議,它使用可拓展的語義和自描述消息格式,與基于網絡的超文本信息系統靈活地互動。
1.HTTP 請求場景示意圖
2.瀏覽器發起 HTTP 請求流程圖
3.DNS 解析流程示意圖
DNS解析的目的就是把域名字符串對應的?ip地址?拿到,有了這個?ip地址?之后就可以向?ip地址對應的計算機發起通信了:
3.1 DNS 解析流程示意圖
3.2 DNS 解析流程說明圖
4.構建 HTTP 請求
上述步驟拿到?ip地址之后通過該?ip地址完成三次握手建立TCP?接連(TCP 連接的內容會在后續文章介紹),然后就可構建HTTP請求,填充上下文至HTTP頭部,再發起?HTTP請求,這個時候就會涉及到?HTTP?協議的格式,下面介紹基于ABNF語言描述的HTTP協議格式:
4.1 HTTP 協議的格式示意圖
Tips:描述圖中的 HTTP 格式就需要制定一種嚴格的規范,通常 HTTP 協議是基于?ABNF?語言來嚴格定義。
4.2 ABNF(擴充巴科斯-瑙爾范式)操作符
(1)空白字符(SP):用來分隔協議定義中的各個元素
method SP request-target SP HTTP-version CRLF(2)選擇(/):表示可以選擇的規則
start-line = request-line / status-line(3)范圍值(%c##-##)
OCTAL = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" 等價于 OCTAL = %x30-37(4)序列組合(( )):把規則組合起來作為單個元
(5)不定量重復(m*n):
*表示 0 個或多個元素:*(header-field CRLF)
1*表示 1 個或多個元素:2*4 表示 2-4 個元素(6)可選序列([]):
[message-body]
4.3 ABNF(擴充巴科斯-瑙爾范式)規則表
下面列舉出?ABNF?描述的字符規則及含義:
| ALPHA | %x41-5A / %x61-71 | 大寫和小寫字母(A-Z,a-z) ASSCII |
| DIGIT | %x30-39 | 數字0-9 |
| HEXDIG | DIGIT / “A” / “B” / “C” / “D” / “E” / “F” | 十六進制數字(0-9,A-F,a-f) |
| DQUOTE | %x22 | 雙引號 |
| SP | %x22 | 空格 |
| HTAB | %x09 | 橫向制表符 |
| WSP | SP / HTAB | 空格或橫向制表符 |
| LWSP | *(WSP / CRLF WSP) | 直線空白 |
| VCHAR | %x21-7E | 可見(打印)字符 |
| CHAR | %x01-7F | 任何7-位 US-ASCII 字符,不包括 NUL(%x00) |
| OCTET | %x00-FF | 8位數據 |
| CTL | %x00-1F / %x7F | 控制字符 |
| CR | %0D | 回車 |
| LF | %x0A | 換行 |
| CRLF | CRLF | 互聯網標準換行 |
| BIT | “0” / “1” | 二進制數字 |
4.4 基于 ABNF 描述的 HTTP 協議格式
HTTP-message = start-line *(header-field CRLF) CRLF [message-body]start-line = request-line / status-line
request-line = method SP request-target SP HTTP-version CRLF
status-line = HTTP-version SP status-code SP reason-phrase CRLF
header-field = field-name ":" OWS field-value OWS
OWS = *(SP / HTAB)
field-name = token
field-value = *(field-content / obs-fold)
message-body = *OCTET
5.Telnet 模擬 HTTP 請求
telnet singwa666.com 80GET /themes/simpleboot3/portal/public/assets/css/moco.css HTTP/1.1
Host: singwa666.com
返回如下圖所示:
Tips:首先輸入?telnet singwa666.com 80?之后會提示和?49.234.12.156?連接成功,然后提示輸入內容,接下來輸入?GET /themes/simpleboot3/portal/public/assets/css/moco.css HTTP/1.1和Host: singwa666.com?兩次回車,可以看到請求數據和返回數據都遵循?ABNF?規范。
6.小結
本文主要介紹了?HTTP?請求的過程,然后對?DNS?域名解析做了詳細的描述,DNS?解析拿到?ip?地址之后就可以完成經典的?TCP/IP?握手,然后就可以發起?HTTP?請求了,文中還對?HTTP?請求的格式規范做了介紹,HTTP?協議規范是基于?ANBF?語言的一種嚴格定義,最后介紹了如何試用?telnet?工具模擬?HTTP?請求過程。
掃碼關注愛因詩賢
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的android rtsp协议转http协议_网络协议HTTP 协议(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 业绩预告和业绩公告有什么区别
- 下一篇: 大学生拍照搜题_大学生心理健康教育知识,