সিতে একটি সাধারণ এইচটিটিপি সার্ভার তৈরি করুন [বন্ধ]


105

আমার সিতে একটি সাধারণ এইচটিটিপি সার্ভার তৈরি করা দরকার? কোন গাইডেন্স? লিঙ্ক? নমুনা?


1
ঠিক এটাই আমি ভেবেছিলাম
রিক

1
আমারও এখন একই সমস্যা ছিল। আমি এই লিঙ্কটি ব্যবহার করেছি । আশা করি এটি আপনাকেও সহায়তা করবে।
উদারা এসএস লিয়ানাজ

1
কীভাবে প্রশ্ন জিজ্ঞাসা করতে হবে এ সম্পর্কে FAQ সম্পর্কে। আপনার 3 জনের পরে জেনে রাখা উচিত যে এটি আসল প্রশ্ন নয়, এটি এত বেশি ভোট কীভাবে পাবে?

এটি সম্পর্কে> github.com/Taymindis/fcgi-function/wiki/…
Oktaheta

1
এটি সম্ভবত একটি খুব দরকারী প্রশ্ন। কেন এটি বন্ধ?
ম্যাকবিয়ার হোল্ডেন

উত্তর:


85

আমি আপনাকে ক্ষুদ্র httpd এ একবার দেখার পরামর্শ দিই । আপনি যদি এটি স্ক্র্যাচ থেকে লিখতে চান তবে আপনি আরএফসি 2616 পুরোপুরি পড়তে চাইবেন । সত্যিকারের নিম্ন স্তরে নেটওয়ার্ক অ্যাক্সেস করতে BSD সকেট ব্যবহার করুন ।


2
অথবা ইনটেড ব্যবহার করুন এবং নেটওয়ার্কিং অংশটি এড়িয়ে যান।
jrockway

22
আরএফসি 2616 এখনই পড়বেন না , এটি দ্বারা
বিচলিত

2
tiny httpdএখানে গিথুব
Purplejacket

119

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি একবার দেখে নিন: ক্লায়েন্টস এবং সার্ভার রাইটিংয়ের একটি বাস্তব নির্দেশিকা

বর্ধিত পদক্ষেপে আপনার যা প্রয়োগ করতে হবে তা হ'ল:

  1. আপনার বেসিক টিসিপি সকেট স্তর চলমান পান (পোর্ট / পোর্টগুলি শুনুন, ক্লায়েন্ট সংযোগ গ্রহণ করুন এবং ডেটা প্রেরণ / গ্রহণ করুন)।
  2. একটি বাফার রিডার কার্যকর করুন যাতে আপনি একবারে অনুরোধগুলি একটি লাইন (সিআরএলএফ দ্বারা সীমিত) পড়তে পারেন।
  3. খুব প্রথম লাইন পড়ুন। পদ্ধতি, অনুরোধ সংস্করণ এবং পথ পার্স করুন।
  4. "শিরোনাম: মান" সিনট্যাক্সের জন্য শিরোনাম পার্সিং প্রয়োগ করুন। ভাঁজ ভাঁজ শিরোনামগুলি ভুলে যাবেন না।
  5. কীভাবে / কীভাবে শরীর পড়বে তা নির্ধারণ করতে অনুরোধের পদ্ধতি, সামগ্রীর ধরণ এবং সামগ্রীর আকার পরীক্ষা করুন।
  6. সামগ্রীর ধরণের ভিত্তিতে সামগ্রীর ডিকোডিং কার্যকর করুন।
  7. আপনি যদি এইচটিটিপি 1.1 সমর্থন করতে চলেছেন তবে "100 চালিয়ে যান", চালিয়ে রাখুন, ছিন্নমূল স্থানান্তরের মতো জিনিসগুলি প্রয়োগ করুন।
  8. অসম্পূর্ণ অনুরোধগুলি সনাক্তকরণ, ক্লায়েন্টের সর্বাধিক সংখ্যা সীমাবদ্ধ করা ইত্যাদির মতো দৃ rob়তা / সুরক্ষা ব্যবস্থা যুক্ত করুন
  9. আপনার কোড মোড়ানো এবং এটি ওপেন-সোর্স সঙ্কুচিত করুন :)

পয়েন্ট # 9, বিশেষত এখানে একটি প্রশ্ন পোস্ট করার পরে, +1 :)
ম্যাথিউ

26

একটি HTTP সার্ভার ধারণাগতভাবে সহজ:

  • শোনার জন্য 80 পোর্ট খুলুন
  • যোগাযোগ করা হয়ে গেলে, সামান্য তথ্য সংগ্রহ করুন (মূলত পান - আপনি আপাতত এড়িয়ে যেতে পারেন)
  • অনুরোধটি ফাইলের অনুরোধে অনুবাদ করুন
  • ফাইলটি খুলুন এবং ক্লায়েন্টের কাছে এটিকে আবার থুতু দিন

আপনি কতটা HTTP সমর্থন করতে চান তার উপর নির্ভর করে এটি আরও কঠিন হয়ে যায় - POST হ'ল আরও জটিল, স্ক্রিপ্টস, একাধিক অনুরোধগুলি পরিচালনা করা ইত্যাদি etc.

তবে বেসটি খুব সাধারণ।


25

মঙ্গুজ (পূর্বে সাধারণ এইচটিটিপি ডিমন) বেশ ভাল। বিশেষত, এটি এম্বেডযোগ্য এবং উইন্ডোজ, উইন্ডোজ সিই এবং ইউনিক্সের অধীনে সংকলন করে।


12

80 পোর্টে একটি টিসিপি সকেট খুলুন, নতুন সংযোগগুলি শুনতে শুরু করুন, এটি বাস্তবায়ন করুন । আপনার উদ্দেশ্যগুলির উপর নির্ভর করে আপনি প্রায় সমস্ত কিছু উপেক্ষা করতে পারেন। সবচেয়ে সহজতম সময়ে, আপনি প্রতিটি অনুরোধের জন্য একই প্রতিক্রিয়া পাঠাতে পারেন, যা সকেটে কেবল পাঠ্য লেখার সাথে জড়িত।


11

নব্বই (নাইজের ওয়েব সার্ভার) দেখুন, "একটি ক্ষুদ্র, নিরাপদ ওয়েব সার্ভার [...] কেবলমাত্র 200 টি সি সি উত্সের কোড সহ":

https://drive.google.com/file/d/0B3msld7qnNOhN1NXaFIwSFU2Mjg/view?usp=sharing http://www.ibm.com

নিবন্ধটিতে সিউডোকোড, ব্যাখ্যা এবং মন্তব্য অন্তর্ভুক্ত রয়েছে।

সম্পাদনা: আইবিএমের লিঙ্কটি মারা গেছে। আমি ওয়েবপৃষ্ঠার একটি পিডিএফ গুগল ড্রাইভে সংরক্ষণ করেছি। কোড ডাউনলোড এখানে:

https://drive.google.com/file/d/0B3msld7qnNOhSGZGdDJJMmY0VHM/view?usp=sharing

@ অঙ্কুশাগরওয়াল কয়েকটি পরিবর্তন করেছেন এবং গীতহাবে তার সংস্করণটি আপলোড করেছেন: https://github.com/ankushagarwal/nweb


এহ আপ লিঙ্কটি পরীক্ষা না করেই ভোট দিয়েছেন: / আপনি ঠিক উল্লিখিত জিনিসটির সন্ধান করছেন, যদি আপনি কিছু খুঁজে পান তবে আপনি আমাকে পিং করতে পারেন? Txt
সমায়ো

1
@ সামায়ো আইবিএমের লিঙ্কটি মারা গেছে। আমি কিছু আয়না সরবরাহ করেছি।
এক্সপি

এখানে আর্কাইভ.অর্গ দ্বারা একটি আয়না রয়েছে - যা আশা করা বছরগুলি প্রায় আশেপাশে থাকবে: web.archive.org/web/20140905115151/http://www.ibm.com/…
james246

5

আমি আমার নিজের লিখেছি যে আপনি ব্যবহার করতে পারেন। এই একটির স্ক্লাইট রয়েছে, থ্রেডটি নিরাপদ এবং ইউনিক্সের জন্য সি ++ এ রয়েছে।

আপনি এটি আলাদা করে নিতে এবং সি সামঞ্জস্যপূর্ণ কোডটি ব্যবহার করতে সক্ষম হওয়া উচিত।

http://code.google.com/p/mountain-cms/




2

http://www.manning.com/hethmon/ - ম্যানিংয়ের "এইচটিটিপিকে পল এস হেথমনের ইলাস্ট্রেটেড গাইড" এইচটিটিপি প্রোটোকল শেখার জন্য খুব ভাল বই এবং এটি প্রয়োগকারী / এর প্রসারিত কারও পক্ষে খুব কার্যকর হবে।


1

প্ল্যাটফর্ম নির্দিষ্ট সকেট ফাংশন ব্যবহার করুন HTTP প্রোটোকলের encapsulate করতে, পিছনে বলছি ঠিক এ্যাপাচি করেনি।


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