सॉकेट प्रोग्रामिंग और Http प्रोग्रामिंग के बीच अंतर क्या है? किसी को भी कृपया मदद कर सकते हैं?
सॉकेट प्रोग्रामिंग और Http प्रोग्रामिंग के बीच अंतर क्या है? किसी को भी कृपया मदद कर सकते हैं?
जवाबों:
HTTP एक एप्लिकेशन प्रोटोकॉल है। इसका मूल रूप से मतलब है कि HTTP का उपयोग सूचना को दूरस्थ अंत बिंदु से / तक परिवहन के लिए नहीं किया जा सकता है। इसके बजाय यह एक अंतर्निहित प्रोटोकॉल पर निर्भर करता है जो HTTP के मामले में टीसीपी है।
यदि आप रुचि रखते हैं तो आप OSI परतों के बारे में अधिक पढ़ सकते हैं ।
दूसरी ओर सॉकेट्स एक एपीआई है जो अधिकांश ऑपरेटिंग सिस्टम नेटवर्क के साथ बात करने में सक्षम होने के लिए प्रदान करते हैं। सॉकेट एपीआई परिवहन परत और नीचे से अलग-अलग प्रोटोकॉल का समर्थन करता है।
इसका मतलब है कि यदि आप टीसीपी का उपयोग करना चाहते हैं तो आप सॉकेट्स का उपयोग करेंगे। लेकिन आप HTTP का उपयोग करके संवाद करने के लिए सॉकेट का उपयोग भी कर सकते हैं, लेकिन फिर आपको HTTP विनिर्देश ( RFC2616 ) के अनुसार संदेशों को डीकोड / एनकोड करना होगा । चूँकि अधिकांश डेवलपर्स के लिए यह एक बहुत बड़ा काम हो सकता है इसलिए हमें अपने डेवलपर फ्रेमवर्क (जैसे .NET) में तैयार ग्राहक भी मिले, उदाहरण के लिए WebClient
या HttpWebRequest
कक्षाएं।
HTTP के साथ आप उच्च-स्तरीय HTTP प्रोटोकॉल का उपयोग करते हैं (जो सॉकेट के शीर्ष पर काम करता है)। यह सत्र-कम है जिसका अर्थ है कि आप पाठ अनुरोध भेजते हैं GET google.com
और बदले में पाठ या द्विआधारी डेटा प्राप्त करते हैं, इसके बाद कनेक्शन बंद हो जाता है (HTTP 1.1 में लगातार कनेक्शन उपलब्ध हैं)
MSDN उदाहरण:
public static void Main (string[] args)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create (args[0]);
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
Console.WriteLine ("Content length is {0}", response.ContentLength);
Console.WriteLine ("Content type is {0}", response.ContentType);
// Get the stream associated with the response.
Stream receiveStream = response.GetResponseStream ();
// Pipes the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader (receiveStream, Encoding.UTF8);
Console.WriteLine ("Response stream received.");
Console.WriteLine (readStream.ReadToEnd ());
response.Close ();
readStream.Close ();
}
सॉकेट्स के साथ आप निचले स्तर पर जाते हैं और वास्तव में कनेक्शन को नियंत्रित करते हैं और कच्चे बाइट्स भेजते / प्राप्त करते हैं।
उदाहरण:
var remoteEndpoint=new IPEndPoint(IPAddress.Loopback, 2345);
var socket = new Socket(remoteEndpoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(remoteEndpoint);
socket.Send(new byte[] {1, 2, 3, 4});
Connection
हेडर कैसे सेट होता है, इस पर निर्भर करता है;)
HTTP कनेक्शन
- HTTP कनेक्शन एक प्रोटोकॉल है जो सॉकेट पर चलता है।
- HTTP कनेक्शन नेटवर्क कनेक्शन का एक उच्च-स्तरीय अमूर्तन है।
- HTTP कनेक्शन के साथ कार्यान्वयन इन सभी उच्च-स्तरीय विवरणों का ध्यान रखता है और बस HTTP अनुरोध (कुछ हेडर जानकारी) भेजता है और सर्वर से HTTP प्रतिक्रिया प्राप्त करता है।
सॉकेट कनेक्शन
- सॉकेट का उपयोग सिस्टम के बीच डेटा ट्रांसपोर्ट करने के लिए किया जाता है। यह बस दो प्रणालियों को एक साथ जोड़ता है, एक आईपी पता एक आईपी आधारित नेटवर्क पर मशीन का पता है।
- सॉकेट कनेक्शन के साथ आप दो प्रणालियों के बीच नेटवर्क कनेक्शन के लिए अपना स्वयं का प्रोटोकॉल डिज़ाइन कर सकते हैं।
- सॉकेट कनेक्शन के साथ आपको टीसीपी / आईपी कनेक्शन के निचले-स्तर के सभी विवरणों का ध्यान रखना होगा।
HTTP प्रोग्रामिंग या HTTP अनुरोध का उपयोग शिथिल युग्मन और प्लेटफ़ॉर्म-न्यूट्रल भाषा तकनीक संचार के लिए किया जाता है, जहाँ सॉकेट प्रोग्रामिंग का उपयोग किया जाता है, जहाँ सिस्टम भाषा सुरक्षा प्रोटोकॉल
दो समापन बिंदु एक दूसरे से बात करने में सक्षम होने के लिए वे दोनों को नियमों के एक सेट का पालन करना चाहिए। कंप्यूटर में इन नियमों के सेट को प्रोटोकॉल कहा जाता है।
उदाहरण के लिए ब्राउज़र जैसे एंडपॉइंट के लिए और वेब सर्वर की तरह एक और के लिए, उन्हें नियमों या प्रोटोकॉल के एक सेट का पालन करना चाहिए, जिसे http कहा जाता है, जो संचार और व्यापार की जानकारी देने में सक्षम हो। इसलिए वर्ल्ड वाइड वेब और इस तरह के संचार में जो केवल इस http प्रोटोकॉल के आधार पर बात करते हैं वे सफलतापूर्वक एक दूसरे से बात कर सकते हैं।
सॉकेट सिर्फ एक समापन बिंदु है। यह www में एक संचार में आने के लिए http प्रोटोकॉल का पालन कर सकता है जो एक पेज का अनुरोध करने वाले ग्राहक के रूप में हो सकता है या यह कनेक्शनों को सुनने वाले सर्वर के रूप में कार्य कर सकता है। या हो सकता है कि यह दूसरे प्रकार के नियमों या प्रोटोकॉलों का पालन करे, जैसे ssh, ftp और अन्य तरीकों से संवाद करना।
अब सॉकेट प्रोग्रामिंग में आप एक सॉकेट बना सकते हैं, इसे एक आईपी पते और एक पोर्ट नंबर पर पोर्ट नंबर के रूप में कार्य करने के लिए बांध सकते हैं और इसे http, ssh, ftp या जो भी आप संचार के आधार पर चाहते हैं, का अनुसरण करने के लिए कहें। के लिए सॉकेट।