نمایش نتایج 1 تا 2 از 2

نام تاپیک: کدام پروتکل: git:// یا ssh:// یا https://؟

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    کاربر دائمی آواتار Yousha
    تاریخ عضویت
    مهر 1387
    محل زندگی
    ایران - تهران
    پست
    515

    Post کدام پروتکل: git:// یا ssh:// یا https://؟

    همونطور که می دونید برنامه Git برای کار با repository، پنج پروتکل در اختیار ما گذاشته که هرکدوم مزایا و معایب خودشونو دارن. این پروتکل ها:
    1- File (یا همون Local protocol)
    2- HTTP (یا همون Dumb protocol)

    3- HTTPS (یا همون Smart protocol)
    4- SSh
    5- Git
    هستند. اما از کدوم پروتکل باید استفاده کنیم؟ کدوم پروتکل امنیت بیشتری داره؟ و کدوم پرتکل سرعت بیشتری داره؟
    پس وارد جزئیات میشیم!

    //:File
    این پروتکل برای کار با repository های داخل هارد(local) طراحی شده و ما در اینجا کاری بهش نداریم.

    //:HTTP
    این پروتکل بخاطر برخی کمبود ها و ضعفهای امنیتیش تقریباً منسوخ شده و هیچ سروری دیگه ازش استفاده نمی کنه و خود تیم Git هم ردش میکنه.


    //:HTTPS

    • در حال حاضر، ساده ترین، محبوب ترین و سازگارترین(compatible) پروتکل استفاده از Git هستش.
    • هم قابلیت Read-only داره و هم Writable هه.
    • سرعتش برای انتقال اطلاعات نرماله.
    • سرور بصورت خودکار توسط certificate تایید می شه.
    • hand-shake بین کلاینت و سرور در 2-3 پروسه انجام میشه.
    • توسط X.509 certificate اطلاعات رو رمزنگاری می کنه.
    • نیاز به SSh Keys و آپلود Public Key در سرور نداره، پس از هر مکانی و سیستمی قابل استفادست. (web-based)
    • از Pr@xi پشتیبانی می کنه.
    • معمولاً در پورت 443 تنظیم میشه و توسط Firewall مسدود نشده.
    • گزینه مناسب برای repository های عمومی و خصوصی با ترافیک متوسط.
    • احراز هویت(authentication) توسط username و password حساب کاربر در سرور انجام میشه.
    • در صورت دزدیده شدن username و password، کل حساب کاربری در سرور از دست خواهد رفت.
    • اکثر سرورهای HTTPS اجازه pull و clone کردن بصورت anonymous رو میدن.
    • بیشتر فرایند های امنیتی در مرورگر/وب انجام میشه و نه در Git.
    • دستورات و عملیات بصورت POST/GET ارسال و دریافت میشن.
    • بدون تنظیم credential-caching در کلاینت، کاربر برای push کردن باید هربار احراز هویت کند. (clone و pull رو هم شامل میشه اگر دسترسیش محدود شده باشه)
    • برای راه اندازی سرور Git، به برنامه Git، یک TLS certificate معتبر و Web server نیاز داره. بنابراین راه اندازی سرور HTTPS کمی زمانبر هستش.
    • این پروتکل تقریباً در سال 1995 رونمایی شد.
    • نمونه URL:
      کد:

      git clone https://domain/project.git


    //:SSh
    • نسبت به HTTPS از سادگی، محبوبیت و سازگاری(compability) کمتری برخورداره. (چون حرفه ای تر و قدرتمند تره)
    • هم قابلیت Read-only داره و هم Writable هه.
    • سرعتش برای انتقال اطلاعات سریعتر از HTTPS هه.
    • سرور با اجازه کاربر توسط Fingerprint کلید تایید می شه.
    • hand-shake بین کلاینت و سرور در 5-6 پروسه انجام میشه.
    • توسط AES, Blowfish, RC4, 3DES, CAST128 یا Arcfour اطلاعات رو رمزنگاری می کنه.
    • نیاز به SSh Keys و آپلود Public Key در سرور داره، پس کاربر باید به SSh مجهز باشه.
    • از Pr@xi پشتیبانی می کنه.
    • معمولاً در پورت 9418 تنظیم میشه و گاهاً توسط Firewall مسدود شده. (در سرورهای درجه 2-3 یا دولتی)
    • بهترین گزینه برای repository های خصوصی و حساس.
    • احراز هویت(authentication) توسط Key ها انجام میشه. (حداکثر امنیت)
    • در صورت دزدیده شدن Private Key، کافیست Public key از حساب کاربری در سرور حذف بشه.
    • اکثر سرورهای SSh اجازه pull و clone کردن بصورت anonymous رو نمیدن.
    • بیشتر فرایند های امنیتی در خود SSh و Git انجام میشه.
    • دستورات و عملیات بصورت پارامتری ارسال و دریافت میشن.
      کد:

      ssh -x git@domain "git-receive-pack 'project.git'"
    • کاربر برای push کردن کافیست فقط یکبار در کلاینتش احراز هویت کند. (clone و pull رو هم شامل میشه)
    • برای راه اندازی سرور Git، به برنامه Git، و SSh نیاز داره.
    • این پروتکل تقریباً در سال 1995 رونمایی شد.
    • نمونه URL:
      کد:

      git clone ssh://username@domain/project.git
      یا
      git clone username@domain:project.git


    //:Git
    • نسبت به SSh از سادگی، محبوبیت و سازگاری(compability) بیشتری برخورداره.
    • در حالت معمول فقط قابلیت Read-only داره.
    • سرعتش برای انتقال اطلاعات بسیار سریعتر از HTTPS و SSh هه.
    • هیچ مکانیزمی برای تایید سرور نداره.
    • تقریباً هیچ hand-shake ای بین کلاینت و سرور انجام نمیشه.
    • هیچ مکانیزم رمزنگاری درکار نیست.
    • نیاز به SSh Keys و آپلود Public Key در سرور نداره، فقط به برنامه Git نیاز داره.
    • از Pr@xi پشتیبانی می کنه.
    • معمولاً در پورت 9418 تنظیم میشه و گاهاً توسط Firewall مسدود شده. (در سرورهای درجه 2-3 و دولتی)
    • بهترین گزینه برای repository های عمومی Read-only با ترافیک بالا یا پروژه های سنگین.
    • هیچ احراز هویت(authentication) ای انجام نمیشه. (حداقل امنیت)
    • هیج گونه اطلاعات حساسی برای دزدیده شدن وجود نداره.
    • همه سرورهای Git اجازه pull و clone کردن بصورت anonymous رو میدن.
    • هیچ فرایند امنیتی انجام نمیشه.
    • دستورات و عملیات بصورت پارامتری ارسال و دریافت میشن.
      git domain "git-receive-pack 'project.git'"
    • در حالت معمول امکان write/push کردن وجود نداره.
    • برای راه اندازی سرور Git فقط به Git نیاز داره.
    • این پروتکل تقریباً در سال 2005 رونمایی شد.
    • نمونه URL:
      کد:

      git clone git://domain/project.git


    توجه: شما خودتون هم میتونید دسترسی Read-Only یا Writable به هر پروتوکلی که خواستید بدید.
    این نکته رو هم در نظر داشته باشید که هرکدوم مزایا و معایب خودشونو دارن و باید درجای مناسبش پروتکل مناسب رو انتخاب کنید.

    این مقاله جامع ترین و کامترین در نوع خودشه، حتی در بین مقالات خارجی.


    منبع: انجمن IranPHP
    آخرین ویرایش به وسیله Yousha : پنج شنبه 26 شهریور 1394 در 18:47 عصر

تاپیک های مشابه

  1. سوال: استفاده از پروتکل SSH
    نوشته شده توسط barnamenevisjma در بخش C#‎‎
    پاسخ: 7
    آخرین پست: پنج شنبه 26 آذر 1394, 06:46 صبح
  2. سوال: ارسال پیامک با پروتکل http
    نوشته شده توسط Babak.Hassanpour در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: چهارشنبه 27 مرداد 1389, 13:22 عصر
  3. سوال :پروتکل HTTP
    نوشته شده توسط el.karimi.se در بخش C#‎‎
    پاسخ: 1
    آخرین پست: چهارشنبه 01 اردیبهشت 1389, 10:46 صبح
  4. کار با پروتکل HTTP
    نوشته شده توسط soroush_vs در بخش برنامه نویسی با MFC و ++Visual C
    پاسخ: 0
    آخرین پست: یک شنبه 08 شهریور 1388, 12:22 عصر
  5. سوال: HttpWebRequest و پروتکل https
    نوشته شده توسط raravaice در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: پنج شنبه 16 خرداد 1387, 22:39 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •