সকেট প্রোগ্রামিং এবং এইচটিটিপি প্রোগ্রামিংয়ের মধ্যে পার্থক্য


উত্তর:


109

এইচটিটিপি একটি অ্যাপ্লিকেশন প্রোটোকল। এটির মূলত অর্থ হ'ল এইচটিটিপি নিজেই কোনও দূরবর্তী প্রান্তে / থেকে তথ্য পরিবহনের জন্য ব্যবহার করা যায় না। পরিবর্তে এটি কোনও অন্তর্নিহিত প্রোটোকলের উপর নির্ভর করে যা HTTP- র ক্ষেত্রে টিসিপি হয়।

এখানে চিত্র বর্ণনা লিখুন

আপনি যদি আগ্রহী হন তবে ওএসআই স্তরগুলি সম্পর্কে আরও পড়তে পারেন।

অন্যদিকে সকেটগুলি এমন একটি এপিআই যা বেশিরভাগ অপারেটিং সিস্টেমগুলি নেটওয়ার্কের সাথে কথা বলতে সক্ষম হয়। সকেট API ট্রান্সপোর্ট লেয়ার এবং ডাউন থেকে বিভিন্ন প্রোটোকল সমর্থন করে।

এর অর্থ হ'ল আপনি যদি টিসিপি ব্যবহার করতে চান তবে আপনি সকেট ব্যবহার করেন। তবে আপনি এইচটিটিপি ব্যবহার করে যোগাযোগের জন্য সকেটগুলিও ব্যবহার করতে পারেন তবে তারপরে আপনাকে এইচটিটিপি স্পেসিফিকেশন ( আরএফসি 2616 ) অনুসারে বার্তাগুলি ডিকোড / এনকোড করতে হবে । যেহেতু এটি বেশিরভাগ বিকাশকারীদের পক্ষে একটি বিশাল কাজ হতে পারে আমরা উদাহরণস্বরূপ ক্লাসগুলি WebClientবা HttpWebRequestক্লাসগুলির জন্য আমাদের বিকাশকারী ফ্রেমওয়ার্কগুলিতে (। নেট) প্রস্তুত ক্লায়েন্টও পেয়েছি ।


2
উভয়ই টিসিপি ব্যবহার করুন, এটি ঠিক যে এইচটিটিপি একটি পূর্বনির্ধারিত ফর্ম্যাটে প্রতিক্রিয়া জানায় এবং সকেট কোনও সকেটের অন্য প্রান্ত থেকে ফেরত হিসাবে ডেটা দেয়, তাই না?
23

4
হাঁ। টিসিপি নিশ্চিত করে যে সমস্ত কিছু এসে পৌঁছেছে (পরিবহন স্তর) এবং এইচটিটিপি ওয়েব অ্যাপ্লিকেশনগুলি কী করা উচিত তা বলে tells
jgauffin

25

HTTP- র সাহায্যে আপনি উচ্চ-স্তরের HTTP প্রোটোকল ব্যবহার করেন (এটি একটি সকেটের উপরে কাজ করে)। এটি সেশন-কম যার অর্থ আপনি GET google.comসংযোগ বন্ধ হয়ে যাওয়ার পরে আপনি যেমন পাঠ্য অনুরোধ প্রেরণ করে এবং বিনিময়ে পাঠ্য বা বাইনারি ডেটা গ্রহণ করেন (HTTP তে 1.1 স্থির সংযোগগুলি উপলব্ধ)

এমএসডিএন উদাহরণ:

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});

HTTP 1.1 থেকে সংযোগটি বন্ধ নেই।
লার্নের মারকুইস

@ এজেপি: শিরোনামটি কীভাবে Connectionসেট করা যায় তার উপর নির্ভর করে ;)
জাগফিন

@jgauffin অবিকল এটি উইলি-নিলি বন্ধ নয়।
লার্নের মারকুইস

সত্য, তবে এগুলি সম্পর্কিত অন্যান্য 95% তথ্যের সাথে ওপি নিজেকে আবিষ্কার করবে details
আনারি

13

HTTP সংযোগ

  • এইচটিটিপি সংযোগ এমন একটি প্রোটোকল যা সকেটে চলে।
  • HTTP সংযোগটি একটি নেটওয়ার্ক সংযোগের একটি উচ্চ-স্তরের বিমূর্ততা।
  • এইচটিটিপি সংযোগের মাধ্যমে প্রয়োগকরণ এই সমস্ত উচ্চ-স্তরের বিশদটি যত্ন করে এবং কেবল HTTP অনুরোধ (কিছু শিরোনাম সম্পর্কিত তথ্য) প্রেরণ করে এবং সার্ভার থেকে HTTP প্রতিক্রিয়া গ্রহণ করে।

সকেট সংযোগ

  • সিস্টেমের মধ্যে ডেটা পরিবহনের জন্য সকেট ব্যবহার করা হয়। এটি কেবল দুটি সিস্টেমকে একসাথে সংযুক্ত করে, একটি আইপি ঠিকানা হ'ল আইপি ভিত্তিক নেটওয়ার্কের মাধ্যমে মেশিনের ঠিকানা।
  • সকেট সংযোগের মাধ্যমে আপনি দুটি সিস্টেমের মধ্যে নেটওয়ার্ক সংযোগের জন্য আপনার নিজের প্রোটোকলটি ডিজাইন করতে পারেন।
  • সকেট সংযোগের সাথে আপনাকে টিসিপি / আইপি সংযোগের সমস্ত নিম্ন-স্তরের বিশদ যত্ন নেওয়া দরকার।

1

এইচটিটিপি প্রোগ্রামিং বা এইচটিটিপি অনুরোধটি শিথিলভাবে সংযোগ এবং প্ল্যাটফর্ম-নিরপেক্ষ ভাষা প্রযুক্তি যোগাযোগের জন্য ব্যবহৃত হয় যেখানে সকেট প্রোগ্রামিং ব্যবহৃত হয় যেখানে সিস্টেমে ভাষার স্পেসিফিকেশন প্রোটোকল রয়েছে


1
ভাষা বলতে কী বোঝ? একটি জাভা অ্যাপ্লিকেশন উদাহরণস্বরূপ সকেটের মাধ্যমে পাইথন অ্যাপ্লিকেশনটির সাথে যোগাযোগ করতে পারে
অ্যাডাম হিউজেস

আমি মনে করি তার অর্থ হ'ল সাধারণত, আপনি যদি আলগাভাবে কাপলড (বা সম্পূর্ণ আলাদা) সিস্টেমগুলি সংযোগ করতে চান তবে এইচটিটিপি দরকারী: ইউআরএলগুলির মাধ্যমে ওয়েবে সংস্থানগুলি অ্যাক্সেস করতে অন্য প্রযুক্তির সাহায্যে কিছুটা প্রযুক্তির সাথে নির্মিত একটি ফ্রন্টএন্ড সাধারণত আপনি যদি টিসিপি / ইউডিপি-র মতো নিম্ন স্তরের সংযোগ প্রোটোকল ব্যবহার করে থাকেন তবে আপনি সম্ভবত একই জাতীয় প্রযুক্তিগুলির (যেমন বিভিন্ন জাভা অ্যাপ্লিকেশন) সিস্টেমগুলির সাথে যোগাযোগের অর্কেস্ট্রেশন করছেন। এটা কী ঠিক? আমি নিজে এটি বোঝার চেষ্টা করছি।
নিকোলা আমাদিও

0

দুটি সমাপ্তির জন্য একে অপরের সাথে কথা বলতে সক্ষম হওয়ার জন্য তাদের উভয়েরই নিয়মের একটি সেট অনুসরণ করা উচিত। কম্পিউটারে এই নিয়মের সেটগুলিকে প্রোটোকল বলা হয়।

উদাহরণস্বরূপ ব্রাউজারের মতো শেষ পয়েন্টের জন্য এবং ওয়েব সার্ভারের মতো অন্যটির জন্য তাদের উভয়ই যোগাযোগ এবং ব্যবসায়ের তথ্য জানাতে সক্ষম হওয়ার জন্য HTTP নামক নিয়ম বা প্রোটোকলের একটি সেট অনুসরণ করা উচিত। সুতরাং ওয়ার্ল্ড ওয়াইড ওয়েব এবং এই ধরণের যোগাযোগের ক্ষেত্রে কেবল যারা এই HTTP প্রোটোকলের উপর ভিত্তি করে কথা বলেন তারা সফলভাবে একে অপরের সাথে কথা বলতে পারেন।

সকেট একটি শেষ পয়েন্ট। এটি কোনও পৃষ্ঠার অনুরোধ করে ক্লায়েন্ট হিসাবে www এ যোগাযোগে আসতে HTTP প্রোটোকল অনুসরণ করতে পারে বা এটি সংযোগ শোনার সার্ভার হিসাবে কাজ করতে পারে। অথবা হতে পারে এটি নিয়মের একটি সেট বা প্রোটোকল যেমন এসএসএস, এফটিপি এবং অন্যান্য উপায়ে যোগাযোগ করতে পারে।

এখন সকেট প্রোগ্রামিংয়ে আপনি একটি সকেট তৈরি করতে পারেন, এটি কোনও আইপি ঠিকানা এবং একটি পোর্ট নম্বরকে একটি পোর্ট নম্বর হিসাবে কাজ করতে বাঁধতে পারেন এবং HTTP, ssh, ftp বা আপনি যে যোগাযোগগুলি ব্যবহার করতে চান তার উপর ভিত্তি করে যা চান তা অনুসরণ করতে বলুন সকেট জন্য।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.