HTTP协议和NDS服务器
HTTP協議:
- HTTP的全稱是:Hyper Text Transfer Protocol,意為超文本傳輸協議。它指的是服務器和客戶端之間交互必須遵循的一問一答的規則。形容這個規則:問答機制、握手機制。
- 它規范了請求和響應內容的類型和格式。
- HTTP協議是由W3C組織管理和維護的。
- HTTP協議是基于TCP協議的,是一個安全的協議
- 超文本:比普通文本更加強大
- 傳輸協議:客戶端和用戶端的通信規則(握手規則)
- 除了用戶端發起請求以外,JavaScript、CSS、圖片資源會自動發起請求
HTTP協議通常承載于TCP協議之上,有時也承載于TLS或SSL協議層之上,這個時候,就成了我們常說的HTTPS。如下圖所示:
HTTP協議版本:
- 目前HTTP協議主要是1.0版本和1.1版本。這兩個版本的區別主要是兩個方面。
- 第一:HTTP1.1版本比1.0版本多了一些消息頭。
- 第二:HTTP1.1版本和1.0版本的執行過程不一樣。執行過程如下:
| 創建連接(TCP/IP) | 創建連接(TCP/IP) |
| 發送請求 | 發送請求1 |
| 得到響應 | 得到響應1 |
| 關閉連接 | 發送請求2 |
| 創建連接(TCP/IP) | 得到響應2 |
| 發送請求 | … |
| 得到響應 | … |
| 關閉連接 | 連接超時或手動關閉連接 |
HTTP協議相關說明:
HTTP協議概念是客戶瀏覽器和服務器一種一問一答的規則,那么必須要有問有答,而且要先問后答。
但是我們使用<script>,<link>和<img>標簽,沒有手動發起請求,但是仍然能從服務器端拿到數據,原因就是:在瀏覽器遇到<script>,<link>,<img>標簽時會自動發出請求。
HTTP協議組成:
由HTTP協議的概念可知,它分為問和答兩部分。其中問指的就是請求部分,而答指的就是響應部分。
請求部分:
請求行: 永遠位于請求的第一行
請求消息頭: 從第二行開始,到第一個空行結束
請求的正文: 從第一個空行后開始,到正文的結束
響應部分:
響應行: 永遠位于響應的第一行
響應消息頭: 從第二行開始,到第一個空行結束
響應的正文: 從第一個空行后開始,到正文的結束
消息頭的共性分析:
消息頭名稱首字母大寫,多個單詞每個單詞的首字母都大寫。
多個單詞用-分隔
名稱和值之間用冒號加空格分隔
多個值之間用逗號加空格分隔,也就是map格式
兩個頭之間用回車分隔
請求行詳解:
請求行:GET /myapp/2.html HTTP/1.1
| GET | 請求的方式。(還有POST) |
| /myapp/2.html | 請求的資源。 |
| HTTP/1.1 | 使用的協議,及協議的版本。 |
請求消息頭詳解:
| Accept | 告知服務器,客戶瀏覽器所支持的MIME類型。 |
| Accept-Encoding | 告知服務器,客戶瀏覽器所支持的壓縮編碼格式。最常用的就是gzip壓縮。 |
| Accept-Language | 告知服務器,客戶瀏覽器所支持的語言。一般都是zh_CN或en_US等。 |
| Referer | 告知服務器,當前請求的來源。 只有當前請求有來源的時候,才有這個消息頭。從地址欄輸入的沒有來源。 作用:1 投放廣告 2 防盜鏈 |
| Content-Type | 告知服務器,請求正文的MIME類型。 |
| Content-Length | 告知服務器,請求正文的長度。 |
| User-Agent | 瀏覽器相關信息 |
| Connection: Keep-Alive | 連接的狀態:保持連接 |
| If-Modified-Since | 告知服務器,客戶瀏覽器緩存文件的最后修改時間。 |
| Cookie(********) | 會話管理相關,非常的重要。 |
請求正文詳解:
第一:只有post請求方式,才有請求的正文。get方式的正文是在地址欄中的。
第二:表單的輸入域有name屬性的才會被提交。不分get和post的請求方式。
第三:表單的enctype屬性取值決定了請求正文的體現形式。概述的含義是:請求正文的MIME編碼類型。
| application/x-www-form-urlencoded | key=value&key=value | username=test&password=1234 |
| multipart/form-data | 此時變成了多部分表單數據。多部分是靠分隔符分隔的。 | -----------------------------7df23a16c0210 Content-Disposition: form-data; name="username" test -----------------------------7df23a16c0210 Content-Disposition: form-data; name="password" 1234 -----------------------------7df23a16c0210 Content-Disposition: form-data; name=“headfile”; filename="C:\Users\zhy\Desktop\請求部分.jpg" Content-Type: image/pjpeg -----------------------------7df23a16c0210 |
響應行詳解:
響應行:HTTP/1.1 200 OK
| HTTP/1.1 | 使用協議的版本。 |
| 200 | 響應狀態碼 |
| OK | 狀態碼描述 |
常用狀態碼介紹:
火狐瀏覽器對狀態碼詳解:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
| 200 | 一切都OK> |
| 302/307 | 請求重定向(客戶端行為,兩次請求,地址欄發生改變) |
| 304 | 請求資源未發生變化,使用緩存 |
| 404 | 請求資源未找到 |
| 500 | 服務器錯誤 |
響應消息頭詳解:
| Location | 請求重定向的地址,常與302,307配合使用。 |
| Server | 服務器相關信息。 |
| Content-Type | 告知客戶瀏覽器,響應正文的MIME類型。 |
| Content-Length | 告知客戶瀏覽器,響應正文的長度。 |
| Content-Encoding | 告知客戶瀏覽器,響應正文使用的壓縮編碼格式。常用的gzip壓縮。 |
| Content-Language | 告知客戶瀏覽器,響應正文的語言。zh_CN或en_US等等。 |
| Content-Disposition | 告知客戶瀏覽器,以下載的方式打開響應正文。 |
| Refresh | 定時刷新 |
| Last-Modified | 服務器資源的最后修改時間。 |
| Set-Cookie(*******) | 會話管理相關,非常的重要 |
| Expires:-1 | 服務器資源到客戶瀏覽器后的緩存時間 |
| Catch-Control: no-catch | 不要緩存,//針對http協議1.1版本 |
| Pragma:no-catch | 不要緩存,//針對http協議1.0版本 |
響應正文詳解:
就和我們在瀏覽器上右鍵查看源文件看到的內容是一樣的。
<html><head><link rel="stylesheet" href="css.css" type="text/css"><script type="text/javascript" src="demo.js"></script></head><body><img src="1.jpg" /></body> </html>NDS服務器:
DNS域名服務器(Domain Name Server)是進行域名(domain name)和與之相對應的IP地址轉換的服務器。DNS中保存了一張域名解析表,解析消息的域名。 一個Web服務器也被稱為HTTP服務器,它通過HTTP (HyperText Transfer Protocol 超文本傳輸協議)協議與客戶端通信。這個客戶端通常指的是Web瀏覽器(其實手機端客戶端內部也是瀏覽器實現的)。
平時瀏覽網頁的時候,會打開瀏覽器,輸入網址后按下回車鍵,然后就會顯示出你想要瀏覽的內容。在這個看似簡單的用戶行為背后,到底隱藏了些什么呢?
對于普通的上網過程,系統其實是這樣做的:瀏覽器本身是一個客戶端,當你輸入URL的時候,首先瀏覽器會去請求DNS服務器,通過DNS獲取相應的域名對應的IP,然后通過IP地址找到IP對應的服務器后,要求建立TCP連接,等瀏覽器發送完HTTP Request(請求)包后,服務器接收到請求包之后才開始處理請求包,服務器調用自身服務,返回HTTP Response(響應)包;客戶端收到來自服務器的響應后開始渲染這個Response包里的主體(body),等收到全部的內容隨后斷開與該服務器之間的TCP連接。
Web服務器的工作原理可以簡單地歸納為:
- 客戶機通過TCP/IP協議建立到服務器的TCP連接
- 客戶端向服務器發送HTTP協議請求包,請求服務器里的資源文檔
- 服務器向客戶機發送HTTP協議應答包,如果請求的資源包含有動態語言的內容,那么服務器會調用動態語言的解釋引擎負責處理“動態內容”,并將處理得到的數據返回給客戶端
- 客戶機與服務器斷開。由客戶端解釋HTML文檔,在客戶端屏幕上渲染圖形結果
地址(URL):
URL全稱為Unique Resource Location,用來表示網絡資源,可以理解為網絡文件路徑。
基本URL的結構包含模式(協議)、服務器名稱(IP地址)、路徑和文件名。常見的協議/模式如http、https、ftp等。服務器的名稱或IP地址后面有時還跟一個冒號和一個端口號。再后面是到達這個文件的路徑和文件本身的名稱。URL的長度有限制,不同的服務器的限制值不太相同,但是不能無限長。
總結
以上是生活随笔為你收集整理的HTTP协议和NDS服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android上运行java命令,Jav
- 下一篇: 计算机专业论文设计与实现,计算机专业论文