我正在寫HTTP服務器(僅用於教育我自己)。HTTP獲取請求的格式
一個典型的GET請求似乎是這樣的:
GET /?a=1&b=2 HTTP/1.1
Host: localhost
User-Agent: my browser details
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
唯一的地方,我可以看到正在發送的變量是在第一線。 寫一個正則表達式來獲取變量和它們的內容會很容易,但我想知道是否有更簡單的方法。我問,因爲我總是認爲url?first_variable=first_value&second_variable=second_value
的想法是協議的一部分,在某種程度上是特殊的。但是,據我所知,情況並非如此,我可以同樣做url$first_variable-first_value?second_variable-second_value
或其他事情。
所以只是澄清,在使用'?','='和'&'後面沒有任何技術含義,但它們在URL規範中,這就是它們爲什麼是標準的原因? – rlms
閱讀標準,他們確實有意義。查詢字符串是URL的一部分,並有助於唯一標識特定資源。 HTTP不關心是否存在URL查詢字符串,它將被視爲URL的一部分,它是標識資源的整個URL。但是,將參數從URL查詢字符串移出到「POST」主體中確實會更改URL,因此放置位置非常重要。 URL是否需要查詢字符串取決於公開給客戶端的資源類型。可以在同一請求中使用URL查詢字符串和POST正文參數。 –
是否可以在HTTP獲取請求的主體中傳遞參數? – Arti