URL格式解析

2021-07-06 10:08:34 字數 2601 閱讀 3007

一、url格式

例如:

http表示要通過http協議來定位網路資源。

host

表示合法的網際網路主機網域名稱或者ip位址。

port

用於表示在傳輸層上交換資訊的程序埠號,http協議預設埠號為80,當然採用不同的協議預設埠號不同。

abs_path

指定請求資源的uri(統一資源定位符)。

parameters

引數用於指定特殊引數的可選項。

?query

可選,用於給動態網頁(使用php/jsp等製作的網頁)傳遞引數,可以有多個引數,用「&」符號隔開,每個引數的鍵值之間用『=』隔開。

可以這樣解析url位址(python)

import urlparse

lis = urlparse.urlparse(url)

url ='鐵路&go=go'

完全按照上面的格式解析了url位址

http 是協議;

zh.wikipedia.org,是伺服器;

80 是http協議預設埠;

/wiki/special:search 伺服器上存放該資源的目錄路徑

query='search=\xcc\xfa\xc2\xb7&go=go' 是動態網頁的查詢

二、伺服器通過http與瀏覽器的互動

(1)http請求

客戶端通過傳送http請求向伺服器請求資源的訪問

http請求由三部分組成,分別是:請求行、訊息報頭、請求正文。

請求行的格式如下:

第乙個引數方法符號,詳細方法下面將列出

第二個引數是請求uri(統一資源定位符)

第三個引數表示協議版本

第四個是換行符

這四部分均以空格間隔,除了結尾外,其他三部分不允許出現cr或者lf字元

例如 get /tmp.html http/1.1 (crlf)

(2)http請求方法

下面是一些例子:

get方法: 當我們通過瀏覽器的位址列輸入**的方式去訪問網頁的時候,瀏覽器就是採用get方法向伺服器獲取資源。

如:get request-url http/1.1 

post方法:

該方法用於向伺服器傳送請求,這種方法要求伺服器接收附在請求後面的資料,多用於提交表單資料

如:post /login.jsp http/1.1 (crlf)

注意,在html

文件中,書寫get和post,不區分大小寫,但http協議中的get和post只能是大寫形式。

head方法:

head方法與get方法幾乎是一樣的,它們的區別在於head方法只是請求訊息報頭,而不是完整的內容。

利用這個方法,不必傳輸整個資源的內容,就可以得到request-uri所標識的資源的資訊。

(3)http響應

在接收和解釋請求訊息後,伺服器會返回乙個http響應訊息。

與http請求類似,http響應也是由三個部分組成,分別是:

狀態行,訊息報頭,相應正文。

狀態行由協議版本,數字形式的狀態**,相應的狀態描述組成

,各元素之間以空格分隔,除了結尾的crlf(回車換行)序列外,不允許出現cr或lf字元。格式如下:

http-version表示伺服器http協議的版本,status-code表示伺服器發回的響應**,reason-phrase表示狀態**的文字描述,crlf表示回車換行。

status-code(狀態**):由三位數字組成,表示請求是否被理解或者滿足;

狀態**的第乙個數字代表的響應的類別:

1xx:指示資訊——表示請求已接收,繼續處理

2xx:成功——表示請求已經被成功接收,理解,接受

3xx:重定向——要完成請求必須進行更進一步的操作

4xx:客戶端錯誤——請求有語法錯誤或請求無法實現

5xx:伺服器端錯誤——伺服器未能實現合法的請求

reason-phrase(狀態描述):關於狀態**的簡短文字描述;

例如:

聖騎士wind的部落格

yy神曲url解析php php解析url幾種方式

php解析url幾種方式 利用 server內建陣列變數 訪問 http localhost test.php?m admin c index a lists catid 1 page 1 url的引數 echo server query string 返回 m admin c index a li...

URL格式規範

先記錄下,以便以後使用。一 格式說明 表示隔開的兩部分只能出現其中乙個,方括號括起來的表示可選,文字由雙引號 括起來,以n 開頭表示至少n個或更多的,n的預設值為0。二 總體格式 genericurl scheme schemepart scheme 1 lowalpha digit schemep...

url語法格式

url由三部分組成 資源型別 存放資源的主機網域名稱 資源檔名。url的一般語法格式為 帶方括號的為可選項 protocol hostname port path parameters query fragment protocol 協議 指定使用的傳輸協議,下表列出 protocol 屬性的有效方...