HTTP
HTTP अनुरोध
खोज…
पैरामीटर
HTTP विधि | उद्देश्य |
---|---|
OPTIONS | निर्दिष्ट अनुरोध पर उपलब्ध संचार विकल्पों (उपलब्ध तरीकों और हेडर) के बारे में जानकारी प्राप्त करें। |
GET | अनुरोध URI, या अनुरोध URI पर उपलब्ध स्क्रिप्ट द्वारा उत्पादित डेटा द्वारा पहचाने गए डेटा को पुनः प्राप्त करें। |
HEAD | GET लिए समान है कि कोई संदेश बॉडी सर्वर द्वारा नहीं लौटाया जाएगा: केवल हेडर। |
POST | अनुरोध URI में निर्दिष्ट resouce के अलावा सर्वर के लिए डेटा (संदेश निकाय में निर्दिष्ट) का एक ब्लॉक सबमिट करें। आमतौर पर फॉर्म प्रसंस्करण के लिए उपयोग किया जाता है। |
PUT | दिए गए अनुरोध URI के तहत नए या अपडेट किए गए संसाधन के रूप में संलग्न जानकारी (संदेश निकाय में) को संग्रहीत करें। |
DELETE | हटाने, या हटाने के लिए कतार, अनुरोध URI द्वारा पहचाने गए संसाधन। |
TRACE | अनिवार्य रूप से एक प्रतिध्वनि आदेश: एक कामकाज, आज्ञाकारी HTTP सर्वर को 200 (ओके) प्रतिक्रिया के शरीर के रूप में पूरे अनुरोध को वापस भेजना होगा। |
टिप्पणियों
CONNECT
विधि, प्रॉक्सिस और टनलिंग मोड (जैसे SSL टनलिंग के लिए) के बीच स्विच करने में सक्षम प्रॉक्सियों के साथ उपयोग के लिए विधि परिभाषा विनिर्देश द्वारा आरक्षित है ।
टेलनेट का उपयोग करके मैन्युअल रूप से न्यूनतम HTTP अनुरोध भेजना
यह उदाहरण प्रदर्शित करता है कि HTTP एक पाठ-आधारित इंटरनेट संचार प्रोटोकॉल है, और एक मूल HTTP अनुरोध और संबंधित HTTP प्रतिक्रिया दिखाता है।
आप टेलनेट का उपयोग कमांड लाइन से मैन्युअल रूप से न्यूनतम HTTP अनुरोध भेजने के लिए कर सकते हैं, निम्नानुसार।
पोर्ट 80 पर वेब सर्वर
www.example.org
पर टेलनेट सत्र प्रारंभ करें:telnet www.example.org 80
टेलनेट रिपोर्ट है कि आप सर्वर से जुड़ा है:
Connected to www.example.org. Escape character is '^]'.
HTTP 1.1 का उपयोग करके, GET अनुरोध URL पथ
/
भेजने के लिए एक अनुरोध पंक्ति दर्ज करेंGET / HTTP/1.1
आवश्यक URL के होस्ट नाम भाग की पहचान करने के लिए एक HTTP हेडर फ़ील्ड लाइन दर्ज करें, जो HTTP 1.1 में आवश्यक है
Host: www.example.org
अनुरोध पूरा करने के लिए एक रिक्त पंक्ति दर्ज करें।
वेब सर्वर HTTP प्रतिक्रिया भेजता है, जो टेलनेट सत्र में दिखाई देता है।
पूरा सत्र, इस प्रकार है। प्रतिक्रिया की पहली पंक्ति HTTP स्थिति रेखा है , जिसमें स्थिति कोड 200 और स्थिति पाठ ठीक है , जो इंगित करता है कि अनुरोध सफलतापूर्वक संसाधित किया गया था। इसके बाद कई HTTP हेडर फील्ड, एक खाली लाइन और HTML प्रतिक्रिया आती है।
$ telnet www.example.org 80
Trying 2606:2800:220:1:248:1893:25c8:1946...
Connected to www.example.org.
Escape character is '^]'.
GET / HTTP/1.1
Host: www.example.org
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Thu, 21 Jul 2016 15:56:05 GMT
Etag: "359670651"
Expires: Thu, 28 Jul 2016 15:56:05 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (lga/1318)
Vary: Accept-Encoding
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270
<!doctype html>
<html>
<head>
<title>Example Domain</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div>
<h1>Example Domain</h1>
<p>This domain is established to be used for illustrative examples in documents. You may use this
domain in examples without prior coordination or asking for permission.</p>
<p><a href="http://www.iana.org/domains/example">More information...</a></p>
</div>
</body>
</html>
( style
एलिमेंट और रिक्त रेखाएँ HTML रिपॉजिट से निकाल दी जाती हैं, संक्षिप्तता के लिए।)
मूल अनुरोध प्रारूप
HTTP 1.1 में, एक न्यूनतम HTTP अनुरोध में एक अनुरोध पंक्ति और एक Host
हेडर होता है:
GET /search HTTP/1.1 \r\n
Host: google.com \r\n
\r\n
पहली पंक्ति में यह प्रारूप है:
Method Request-URI HTTP-Version CRLF
Method
एक वैध HTTP Method
होनी चाहिए; [१] [२] में से एक :
-
OPTIONS
-
GET
-
HEAD
-
POST
-
PUT
-
DELETE
-
PATCH
-
TRACE
-
CONNECT
Request-URI
ग्राहक को अनुरोध करने वाले संसाधन के लिए URI या पथ को इंगित करता है। यह या तो हो सकता है:
- योजना, मेजबान, (वैकल्पिक) बंदरगाह और पथ सहित एक पूरी तरह से योग्य यूआरआई; या
- एक रास्ता, जिस स्थिति में मेजबान में निर्दिष्ट किया जाना चाहिए
Host
हैडर
HTTP-Version
उस HTTP प्रोटोकॉल के HTTP-Version
दर्शाता है जो क्लाइंट इस्तेमाल कर रहा है। HTTP 1.1 अनुरोधों के लिए यह हमेशा HTTP/1.1
होना चाहिए।
अनुरोध पंक्ति एक गाड़ी वापसी लाइन फ़ीड जोड़ी के साथ समाप्त होती है, जिसे आमतौर पर \r\n
द्वारा दर्शाया जाता है।
शीर्ष लेख फ़ील्ड का अनुरोध करें
हेडर फ़ील्ड (आमतौर पर सिर्फ 'हेडर' कहा जाता है) को HTTP अनुरोध में अतिरिक्त जानकारी प्रदान करने के लिए जोड़ा जा सकता है। एक हेडर में किसी भी प्रोग्रामिंग भाषा में एक विधि के लिए पारित पैरामीटर के समान शब्दार्थ होता है जो ऐसी चीजों का समर्थन करता है।
Host
, User-Agent
और Referer
हेडर के साथ एक अनुरोध इस तरह दिख सकता है:
GET /search HTTP/1.1 \r\n
Host: google.com \r\n
User-Agent: Chrome/54.0.2803.1 \r\n
Referer: http://google.com/ \r\n
\r\n
समर्थित HTTP 1.1 अनुरोध हेडर की एक पूरी सूची विनिर्देश में पाई जा सकती है। सबसे आम हैं:
-
Host
- अनुरोध URL का होस्ट नाम भाग (HTTP / 1.1 में आवश्यक) -
User-Agent
- एक स्ट्रिंग जो अनुरोध करने वाले उपयोगकर्ता एजेंट का प्रतिनिधित्व करता है; -
Referer
- यूआरआई है कि ग्राहक से यहां भेजा गया था; तथा -
If-Modified-Since
- एक तिथि देता है जो सर्वर यह निर्धारित करने के लिए उपयोग कर सकता है कि क्या कोई संसाधन बदल गया है और यह इंगित करता है कि ग्राहक एक कैश की गई कॉपी का उपयोग कर सकता है यदि यह नहीं है।
एक हेडर Name: Value CRLF
रूप में बनाया जाना चाहिए Name: Value CRLF
। Name
हेडर नाम है, जैसे कि User-Agent
। Value
इसे सौंपा गया डेटा है, और लाइन को CRLF के साथ समाप्त होना चाहिए। हैडर नाम केस-संवेदी होते हैं और केवल अक्षर, अंक और अक्षर का उपयोग कर सकते !#$%&'*+-.^_`|~
(RFC7230 खंड 3.2.6 क्षेत्र मान घटकों )।
Referer
हेडर फ़ील्ड नाम 'संदर्भ' के लिए गलत वर्तनी, में गलती से शुरू की है RFC1945 ।
संदेश देह
कुछ HTTP अनुरोधों में एक संदेश निकाय हो सकता है। यह अतिरिक्त डेटा है जो सर्वर अनुरोध को संसाधित करने के लिए उपयोग करेगा। संदेश निकायों का उपयोग अक्सर POST या PATCH और PUT अनुरोधों में किया जाता है, ताकि सर्वर पर संसाधन के लिए नया डेटा उपलब्ध कराया जाए।
अनुरोध जिसमें एक संदेश निकाय शामिल होता है, उसे हमेशा Content-Length
शीर्षलेख के साथ बाइट्स में अपनी लंबाई शामिल करनी चाहिए।
सभी हेडर और एक डबल सीआरएलएफ के बाद एक संदेश निकाय शामिल किया गया है । एक शरीर के साथ एक उदाहरण PUT अनुरोध इस तरह दिख सकता है:
PUT /files/129742 HTTP/1.1\r\n
Host: example.com\r\n
User-Agent: Chrome/54.0.2803.1\r\n
Content-Length: 202\r\n
\r\n
This is a message body. All content in this message body should be stored under the
/files/129742 path, as specified by the PUT specification. The message body does
not have to be terminated with CRLF.
HEAD
और TRACE
अनुरोधों में एक संदेश निकाय शामिल नहीं होना चाहिए।