البروتوكولات الأربعة المسماة "بروكسي" لا تشترك إلا في الاسم. بروكسيات HTTP تحلل الطبقة السابعة وتعيد كتابة الرؤوس؛ بروكسيات SOCKS لا تقرأ حركة المرور الخاصة بك على الإطلاق. يحدد هذا الفرق أي بروكسي يناسب التصفح، والتجريف، والأنفاق الخام.
بروكسي HTTP
يتوقع بروكسي HTTP دلالات HTTP. يفتح الطلب، ويقرأ عنوان URL، ويمكنه إرفاق رؤوس مثل Via أو X-Forwarded-For، ويرفض أي شيء ليس طلب HTTP صالحًا. المتصفحات، curl، ومعظم مكتبات التجريف تستخدم بروكسيات HTTP افتراضيًا لأن التهيئة مجانية تقريبًا — تعيين متغير بيئة واحد أو تمرير علامة.
ثمن هذه البساطة هو الرؤية. يرى البروكسي عنوان URL الكامل، بما في ذلك المسار وسلسلة الاستعلام، وفي HTTP النصي يرى النص أيضًا. يمكن لبروكسيات التخزين المؤقت إعادة كتابة الردود؛ يمكن للبروكسيات الشفافة إزالة ملفات تعريف الارتباط. تعامل مع أي بروكسي HTTP كوسيط كامل الصلاحيات ولا ترسل أبدًا بيانات اعتماد عبر نص عادي.
بروكسي HTTPS وطريقة CONNECT
"بروكسي HTTPS" هو تسمية مضللة بعض الشيء. يشير إلى بروكسي HTTP يقوم بالإضافة إلى ذلك بتنفيذ طريقة CONNECT. تخبر CONNECT البروكسي بفتح نفق TCP خام إلى مضيف هدف ونقل البايتات في كلا الاتجاهين؛ ثم يتفاوض العميل والوجهة على TLS كما لو أن البروكسي غير موجود. يرى البروكسي المضيف الهدف والمنفذ، وحجم البايتات، لكن ليس المحتوى.
وبالتالي فإن البروكسي "الداعم لـ HTTPS" هو بروكسي يدعم أنفاق TLS، وليس بروكسيًا يعمل نفسه عبر TLS. يمكن أن يكون الرابط من جهازك إلى البروكسي نصًا عاديًا أو مشفرًا بشكل مستقل. إذا كنت تهتم بحماية هذا الرابط، فاستخدم تنفيذ SOCKS5 عبر TLS أو بروكسي تجاري مدفوع ينشر نقطة نهاية TLS الخاصة به.
SOCKS4
SOCKS4 هو الحد الأدنى لعام 1994: TCP فقط، IPv4 فقط، لا UDP، لا IPv6، لا مصادقة، لا حل لأسماء المضيفات في البروكسي. المصافحة هي ستة بايتات بالإضافة إلى رمز استجابة من بايت واحد. لا يزال موجودًا في البرية لأن البروتوكول صغير جدًا لدرجة أن أي أداة تدعم TCP تقريبًا يمكنها تنفيذه بشكل صحيح. إذا أعلنت قائمة عن SOCKS4، فتوقع إعادة توجيه TCP خام إلى عنوان IPv4 — ولا شيء غير ذلك.
SOCKS5
SOCKS5، المُعرّف في RFC 1928 (1996)، هو الإصدار الذي تتحدث به معظم الأدوات الحديثة. يضيف إعادة توجيه UDP، وعناوين IPv6، ومصادقة GSSAPI، وخيار حل أسماء المضيفات في البروكسي بدلاً من العميل. نظرًا لأن SOCKS5 لا يفترض أي شيء حول طبقة التطبيق التي تعمل فوقه، فهو الخيار الأكثر مرونة لأعباء العمل غير HTTP: SSH، IRC، BitTorrent، RPC مخصص.
الأداء والعبء الإضافي
بروكسيات SOCKS لها عبء إضافي أقل لكل طلب لأنها لا تحلل أي شيء. بروكسيات HTTP و HTTPS تدفع ثمن التحليل الكامل للطلب على كل اتصال. لجلسة TLS واحدة طويلة العمر داخل CONNECT، الفرق لا يُذكر. لآلاف الطلبات القصيرة حيث يفتح البروكسي اتصالًا جديدًا في كل مرة، يفوز SOCKS5 بشكل ملحوظ — عادةً 2–5 مللي ثانية لكل طلب لمسار التحليل.
إخفاء الهوية، عمليًا
يمكن لبروكسي HTTP لا يزيل رؤوسك أن يسرب عنوان IP الخاص بعميلك عبر Via أو X-Forwarded-For أو Forwarded. بروكسيات SOCKS ليس لديها مثل هذه الرؤوس لأنها لا تملك مفهوم الرؤوس. هذه ليست ميزة إخفاء هوية بقدر ما هي غياب سطح تسريب. داخل HTTPS المُنفَّق عبر CONNECT، ترى الوجهة فقط مصافحة TLS، لذا فإن أي تسريب على مستوى HTTP في البروكسي لا طائل منه.
اتفاقيات المنافذ
سترى هذه في هذا الدليل: 80، 8080، 3128، 8888 لـ HTTP؛ 443 لنقاط النهاية التي تدعم CONNECT بشكل صريح؛ 1080 لـ SOCKS. العديد من المزودين يعرضون منافذ عالية غير قياسية (فوق 10,000) لتجنب فحص المنافذ العادي. رقم المنفذ لا يقول شيئًا عن الجودة — إنه يشير فقط إلى ما اختار المشغل عرضه.