HTTP项目1.0 -- HTTP协议基础知识
生活随笔
收集整理的這篇文章主要介紹了
HTTP项目1.0 -- HTTP协议基础知识
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一. HTTP之URL篇
首先來看一下,我們一般在上網的時候,地址欄中經常會顯示的信息,這里就舉一些簡單的例子
https://www.baidu.com
https://113.2.7.58.25/a/b/c.html
從上面的簡單的例子我們把url分成了以后的幾個部分,請看下圖
第一個協議就不用解釋了一般瀏覽器使用的協議都是http的協議;第二個 主機號,其實是一臺服務器的IP地址;第三個端口號,所謂的端口號就是主機上面的一個程序號,這里一般默認的是80,然后很多瀏覽器是省略不顯示的;第四個是路徑,就是想對于你的主工作路徑的目錄,如果不顯示的話,就是默認的/,主工作目錄。比如我們輸入www.guet.edu.cn,這個時候瀏覽器會默認的改成http://guet.edu.cn/
讓我們簡單的分析一下下面的一個url請求, https://123.2.7.58.25:80/a/b/c.php?a=100&b=20
瀏覽器的意思是,訪問主機號為123.207.58.25這臺主機下面的80號服務下的根目錄下的a目錄下的b目錄下的c.php資源,并且要提交的數據是a=100和b=20 上面的是大多數的瀏覽器中的url大家可以看一下,中間以?隔開的是我們要提交的數據,還有時候是沒有,提交數據時候大概就是我們提交一個表單的過程,比如輸入用戶名和 密碼等 下面就隨機從網上打開了幾個網頁,大家看一下 https://www.baidu.com/index.php?tn=monline_3_dg https://mp.weixin.qq.com/misc/appmsgcomment?action=list_latest_comment&begin=0&count=10&mp_version=7&token=1240007609&lang=zh_CN 我們看到最后一個url雖然內容有很多,但是也可以被我們看成 是幾部分,注意中間的?,那個后面的是我們要提交的數據,然后這些數據是&來區分各個數據的,提交的數據,一直采用了name=value的形式 二. HTTP之請求篇 首先看一個圖來進行講解
對于之前的一個網址,https://123.207.58.25:80/a/b/c.php?a=100&b=20去掉https,去掉IP,去掉端口號,剩下的部分(/a/b/c.php?a=100&b=20)就是存放在上圖中url字段中的數據 這里在補充一點就是,我們的方法一般是GET和POST方法,在上面的請求行中,方法和url字段中有一個空格,url和協議版本中有一個空格。 那上面的實例來說就是,我們的請求行中的數據就是 GET /a/b/c.php?a=100&b=20 http/1.0\r\n 注意:1.GET和、/a...之間有一個空格,b=20和http/1.0之間有一個空格 2.其中的\r\n每一行的標識,不僅僅是第一行的,另外規定就是\r\n不允許單獨的出現
method字段: GET:請求獲取url所標識的資源 POST:在url所標識的資源后面附加上新的資源
GET方法:在瀏覽器的地址欄中輸入網址的方式或者是瀏覽網頁,瀏覽器多采用GET方法 GET /form.html HTTP/1.1\r\n
POST方法:要求被請求的服務器接收負載方法后面的數據,常用于提交表單,比如我們登錄一個網站的時候需要輸入密碼。
三.HTTP之響應篇 首先看響應的圖
上圖中有狀態行中 有狀態碼和狀態碼描述,下面有幾個實例 200 OK ---- 客戶端請求成功了 404 Not Found --- 請求的資源不在,eg:輸入了錯的網址 403 Firbidden --- 服務器拒絕收到的請求,拒絕服務
例如 HTTP/1.0 200 OK\r\n
在請求正文中,就是服務器給我們放回的請求數據,比如html,這個時候服務器就給我們返回了一個html的一個文件,然后經過了瀏覽器的解析之后就是呈現在我們面前的一個頁面 其他的字段和 請求中的是一樣的
綜上:服務器根據sock收到的client發來的數據請求,對數據進行解析,然后將結果返回,然后經過瀏覽器進行解析,呈現在我們面前的一個個頁面還有其他的一些信息
第一個協議就不用解釋了一般瀏覽器使用的協議都是http的協議;第二個 主機號,其實是一臺服務器的IP地址;第三個端口號,所謂的端口號就是主機上面的一個程序號,這里一般默認的是80,然后很多瀏覽器是省略不顯示的;第四個是路徑,就是想對于你的主工作路徑的目錄,如果不顯示的話,就是默認的/,主工作目錄。比如我們輸入www.guet.edu.cn,這個時候瀏覽器會默認的改成http://guet.edu.cn/
讓我們簡單的分析一下下面的一個url請求, https://123.2.7.58.25:80/a/b/c.php?a=100&b=20
瀏覽器的意思是,訪問主機號為123.207.58.25這臺主機下面的80號服務下的根目錄下的a目錄下的b目錄下的c.php資源,并且要提交的數據是a=100和b=20 上面的是大多數的瀏覽器中的url大家可以看一下,中間以?隔開的是我們要提交的數據,還有時候是沒有,提交數據時候大概就是我們提交一個表單的過程,比如輸入用戶名和 密碼等 下面就隨機從網上打開了幾個網頁,大家看一下 https://www.baidu.com/index.php?tn=monline_3_dg https://mp.weixin.qq.com/misc/appmsgcomment?action=list_latest_comment&begin=0&count=10&mp_version=7&token=1240007609&lang=zh_CN 我們看到最后一個url雖然內容有很多,但是也可以被我們看成 是幾部分,注意中間的?,那個后面的是我們要提交的數據,然后這些數據是&來區分各個數據的,提交的數據,一直采用了name=value的形式 二. HTTP之請求篇 首先看一個圖來進行講解
對于之前的一個網址,https://123.207.58.25:80/a/b/c.php?a=100&b=20去掉https,去掉IP,去掉端口號,剩下的部分(/a/b/c.php?a=100&b=20)就是存放在上圖中url字段中的數據 這里在補充一點就是,我們的方法一般是GET和POST方法,在上面的請求行中,方法和url字段中有一個空格,url和協議版本中有一個空格。 那上面的實例來說就是,我們的請求行中的數據就是 GET /a/b/c.php?a=100&b=20 http/1.0\r\n 注意:1.GET和、/a...之間有一個空格,b=20和http/1.0之間有一個空格 2.其中的\r\n每一行的標識,不僅僅是第一行的,另外規定就是\r\n不允許單獨的出現
method字段: GET:請求獲取url所標識的資源 POST:在url所標識的資源后面附加上新的資源
GET方法:在瀏覽器的地址欄中輸入網址的方式或者是瀏覽網頁,瀏覽器多采用GET方法 GET /form.html HTTP/1.1\r\n
POST方法:要求被請求的服務器接收負載方法后面的數據,常用于提交表單,比如我們登錄一個網站的時候需要輸入密碼。
三.HTTP之響應篇 首先看響應的圖
上圖中有狀態行中 有狀態碼和狀態碼描述,下面有幾個實例 200 OK ---- 客戶端請求成功了 404 Not Found --- 請求的資源不在,eg:輸入了錯的網址 403 Firbidden --- 服務器拒絕收到的請求,拒絕服務
例如 HTTP/1.0 200 OK\r\n
在請求正文中,就是服務器給我們放回的請求數據,比如html,這個時候服務器就給我們返回了一個html的一個文件,然后經過了瀏覽器的解析之后就是呈現在我們面前的一個頁面 其他的字段和 請求中的是一樣的
綜上:服務器根據sock收到的client發來的數據請求,對數據進行解析,然后將結果返回,然后經過瀏覽器進行解析,呈現在我們面前的一個個頁面還有其他的一些信息
總結
以上是生活随笔為你收集整理的HTTP项目1.0 -- HTTP协议基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哈希--直接定值法和除留取余法
- 下一篇: 模板的分离编译