کلاینت چیست | آشنایی کامل با انواع کلاینت + مزایا و معایب
کلاینت (Client) به هرگونه سیستم سختافزاری یا نرمافزاری گفته میشود که از سرور (Server) درخواست دسترسی به خدمات یا منابعی را دارد. شبکه یا اینترنتی که امروزه از آن استفاده میکنیم از دو قسمت اصلی تشکیل شده است. یک درخواستکننده و یک پاسخدهنده. در شبکههای کامپیوتری از سرور بهعنوان پاسخدهنده و از کلاینت بهعنوان درخواستکننده یاد میشود.
گوشیها، سیستمهای کامپیوتری، لپتاپها و بسیاری از دستگاههای دیگر، همان درخواستکننده یا client نام دارند. البته انواع مختلفی از درخواستکنندهها وجود دارد که در ادامه به بررسی کاملتر این موضوع پرداختهایم. پیشنهاد میشود تا آخر مقاله همراه ما باشید تا پاسخ کامل و جامعی برای سوال “کلاینت چیست؟” پیدا کنید.
کلاینت چیست؟
همانطور که در دنیای واقعی با دو عنوان: تولیدکننده و مصرفکننده روبهرو هستیم در دنیای کامپیوتر و شبکه نیز خدمتگیرنده و خدمتدهنده داریم. اما منظور از کلاینت چیست؟ کلاینت (Client) کلمهای انگلیسی و به معنای مشتری است. همین جمله، بصورت تقریبی شما را با مفهوم کلاینت آشنا میکند. در واقع سرویسدهنده یا Server تجهیزاتی از جنس سختافزار و نرمافزار است که سرویسی را ارائه میکند. در طرف دیگر کلاینت (Client) یا مشتری وجود دارد که از این سرویسهای ارائه شده، استفاده میکند یا خدمت میگیرد.
زمانی که گوشی خود را برمیدارید و از نرمافزارهای مختلفی استفاده میکنید، در حقیقت شما مشتری بهحساب میآیید. همچنین ارائهدهنده آن سرویس (مثلا مارک زاکربرگ ارائهدهنده فیسبوک یا متا امروزی) نیز سرویسدهنده یا به تعبیری دیگر صاحب مغازه است.
اما در ابتدا اشاره شد که در دنیای کامپیوتر و شبکه منظور از Client یک نرمافزار یا سختافزار درخواستکننده است، پس در اینجا نمیتوان انسان را جزو این دستهبندی قرارداد. در عوض تمامی ابزارهایی که یک کاربر برای انجام هر عملیاتی از آن استفاده میکند، یک کلاینت خواهد بود. برای مثال: کامپیوترهای شخصی (PC)، لپتاپها، گوشیهای هوشمند، تبلتها، تلویزیونها و… که از سرورها اطلاعات دریافت میکنند.
برای اطلاعات بیشتر مقاله سرور چیست و آشنایی با همه انواع آن را بخوانید.
نحوه تعامل میان سرور – کلاینت به چه صورت است؟
سرور و کلاینت هر دو در کنار هم معنی و مفهوم پیدا میکنند. منظور از Server، یک سختافزار یا نرمافزار ارائهدهنده سرویس است. در معماری Server-Client (سرور – کلاینت) معمولا سرورها منابعی مانند حافظه ذخیرهسازی، قدرت پردازش، دسترسی به اینترنت و مواردی مشابه را از طریق یک برنامه توزیعکننده، دریافت میکنند. مشتریان (Clients) نیز از منابعی که در اختیار ندارند، با درخواست از سرویسدهنده و به لطف او، بهرهمند میشوند.
این پروسه بهواسطه الگوریتمی که درخواست و پاسخ (request-response) نام دارد، انجام خواهد شد. یعنی زمانی که یک کلاینت میخواهد از منابع یک سرور استفاده کند، باید درخواستی (request) مبنی بر خدماتی که میخواهد برایش سرو شود، ارسال کند. در مقابل سرور برای سرو خدمات خود به مشتری، پاسخی (response) متقابل ارسال خواهد کرد.
نکتهای که وجود دارد این است که کلاینت و سرور میتوانند در مناطق جغرافیایی مختلفی قرار داشته باشند. مانند کاربران تلگرام که در ایران هستند و سرورهای تلگرام که در آمریکا یا آلمان مستقر شدهاند. ازاینرو پروسه ارسال و دریافت الگوریتم درخواست و پاسخ (request-response)، به لطف شبکه امکانپذیر میشود.
اگر شبکه موجود، محلی (LAN) باشد از مدل OSI برای برقراری اتصال بهمنظور انجام پروسه درخواست و پاسخ استفاده خواهد شد. اما اگر شبکه جهانی باشد (اینترنت) برای برقراری اتصال از مدل TCP/IP استفاده میشود. بهتر است اشاره کنیم وظایفی که برعهده کلاینت، در طول اتصال، خواهد بود را سمت مشتری (Client-side) و وظایفی که برعهده سرور است را سمت سرور (Server-side) مینامند.
مطالعه مقاله شبکه چیست و بررسی جامع انواع آن را پیشنهاد می کنیم.
در جهت تکمیل توضیحات بالا باید اشاره شود که پروسه درخواست و پاسخ لحظهای نیست. یعنی زمانی که شما از تلگرام استفاده میکنید، برای مثال به مدت 10 دقیقه در شبکه آن، آنلاین هستید. پس باید اتصال TCP/IP به مدت 10 دقیقه برقرار باشد. همچنین اگر سرور درخواستهای متعدد و همزمان دریافت کند، درخواستها را بر اساس اولویت پاسخ خواهد داد. مانند اینکه در تلگرام همزمان یک ویدئو و یک عکس را دانلود میکنید، سرور بر اساس اولویت ابتدا به درخواست دانلود عکس پاسخ میدهد و سپس ویدئو (چون حجم عکس کمتر است).
سمت سرور و سمت کلاینت (Server-side & Client-side)
در تیتر قبلی بهصورت خلاصه اشاره کردیم که به وظایفی که سرور یا کلاینت برعهده دارند، سمت سرور یا سمت کلاینت گفته میشود. برای مثال زمانی که شما برای خرید یک لباس به بوتیک مراجعه میکنید، برخی از وظایف برعهده شما است. مانند پسندیدن رنگ یا اندازه لباس و پرداخت هزینه برای خرید. در مقابل فروشنده نیز وظایفی مانند به نمایش گذاشتن تنوع لباسهای خود، ارائه توضیحاتی از جنس محصول و محل ساخت آن و… را به دوش میکشد.
حال برای درک بهتر Server-side و Client-side در دنیای شبکه و کامپیوتر فرض کنید که میخواهید از یک فروشگاه اینترنتی لباس خرید کنید. دادهها فروشگاهی که برای خرید محصول به آن مراجعه میکنید از طریق یک مرورگر برای شما بارگذاری میشود. زیرا دادههای آن روی کامپیوتر شما نیست، بلکه روی هاست سایت آپلود شده است.
ازاینرو مرورگر شما وظیفه دارد که درخواستی مبنی بر دانلود اطلاعات ارسال کند که همان Client-side نام دارد. سرور نیز موظف است برای پاسخ به درخواست، اطلاعات و دادهها را از هارد خود پیدا کرده و برای شما ارسال کند که همان Server-side نام دارد. انواع مختلفی از کلاینت (Client یا مشتری) وجود دارد. در ادامه به معرفی و بررسی تکتک آنها میپردازیم.
مزایای شبکههای کلاینت-سرور
از مزیتهای مدل شبکه کلاینت سرور میتوان به موارد زیر اشاره کرد:
-
- متمرکز: در شبکههای کلاینت-سرور امکان پشتیبانگیری متمرکز وجود دارد؛ یعنی تمام دادهها روی یک سرور ذخیره میشوند.
- امنیت: این شبکهها امنیت بیشتری دارند؛ چون تمام منابع مشترک به صورت مرکزی اداره میشوند.
- عملکرد: استفاده از سرور اختصاصی در این مدل باعث افزایش سرعت اشتراکگذاری منابع میشود و تقویت عملکرد کلی سیستم را به دنبال دارد.
- مقیاسپذیری: در مدل کلاینت – سرور امکان افزایش کلاینتها و سرورها بهطور جداگانه وجود دارد. میتوان عناصر جدید اضافه کرد یا در صورت تمایل گرههای اضافه را حذف کرد.
معایب شبکههای کلاینت-سرور
برخی از مهمترین معایب شبکههای کلاینت سرور عبارتاند از:
-
- ازدحام ترافیک یکی از بزرگترین مشکلات شبکههای کلاینت/سرور محسوب میشود. هنگامی که تعداد زیادی از مشتریان درخواستهای خود را به سرور مشابه ارسال میکنند، طبیعی است که با مشکل تراکم ترافیک مواجه شویم.
- مدل کلاینت سرور بهاندازه شبکه مستحکم نیست و قابلیت اطمینان بالایی ندارد؛ برای مثال زمانی که سرور خاموش است؛ درخواستهای مشتری برآورده نخواهد شد.
- گاهی اوقات که سخت افزار معمولی کامپیوتر به تعداد معینی از مشتریان سرویس نمیدهد و برای تکمیل عملیات موردنظر، به سخت افزار خاصی در سمت سرور احتیاج است.
- گاهی اوقات منابع سمت سرور وجود دارند اما ممکن است سمت کلاینت وجود نداشته باشند.
انواع کلاینت (Client)
مشتریان یا Clients بر اساس میزان وابستگی که به سرور دارند، در 4 دستهبندی مختلف قرار میگیرند. منظور از میزان وابستگی به سرور، میزان نیاز کلاینت به منابع سرور است. خب مطمئنا تعداد درخواستهایی که یک client از سرور برای نمایش یک سایت ساده دارد، متفاوت از درخواستهای کلاینتی دیگر برای استفاده از برنامه اینستاگرام خواهد بود. انواع کلاینت عبارتاند از:
-
- Thick client(کلاینت چاق)
- Thin client(کلاینت لاغر)
- Hybrid client(کلاینت ترکیبی)
- Zero client(کلاینت صفر)
ترمینال سرور چیست؟ برای اطلاعات بیشتر می توانید مقاله مورد نظر را مطالعه نمایید.
Thick client (کلاینت چاق)
بهنوعی از کلاینتها گفته میشود که اکثر منابع موردنیاز برای پردازش اطلاعات و اجرای درخواستهای کاربرد را در خود دارد. برای مثال سیستمهای کامپیوتری شخصی یا همان PCها از انواع مشتریان یا کلاینتهای چاق (Thick client) هستند. در این نوع مشتریان نیاز به اتصال مداوم سرور نیست، زیرا اغلب (نه همه) نیازهای کاربران خود را بهصورت محلی میتوانند برآورده کنند.
در مصارف شخصی، کارگاهها، شرکتها، سازمانها و ارگانهای مختلف از کلاینت چاق برای انجام پردازشها و امور مربوط به کامپیوتر استفاده میشود. زیرا کاربران مدیریت بهتری بر روی آنها دارند و این نوع Client انعطافپذیرتر هستند. برای مثال اگر نیاز به نصب و استفاده از برنامهای مانند word باشد، استفاده از مشتری thick بهتر خواهد بود. چون بدون اتصال به اینترنت و بهصورت آفلاین کارایی دارد. همچنین در هر زمانی و بهراحتی میتوان به برنامه دسترسی داشت و تنظیمات پیشرفتهتر با انعطافپذیری بالاتری نیز بر روی آن اعمال کرد.
در زمانهایی مانند دانلود فایل، تماشای ویدئو بهصورت آنلاین، وبگردی، گوشدادن به موزیک یا دانلود آن و… این نوع کلاینتها باید به شبکه و سرور متصل شوند. اما این اتصال دائمی نیست و منابع موردنیاز برای ذخیرهسازی یا پردازش اطلاعات توسط خود مشتری فراهم میشود. از جمله مزایای Thick Client عبارتاند از:
-
- بهصورت آفلاین کار میکند و برای انجام اکثر درخواستهای کاربر نیاز به اتصال سرور نیست.
- در صورت نیاز به اتصال سرور، اتصال کوتاه و بهاندازه خواهد بود تا اطلاعات و دادهها بارگذاری شوند.
- کاهش هزینههای سرور به دلیل نیاز کم به خدمات و منابعی که Server ارائه میکند.
- داشتن دسترسی بیشتر و انعطافپذیری بالاتر برای ذخیره و پردازش دادهها.
بهتر است تا برای یک قضاوت عادلانه علاوه بر مزایا، به معایب این نوع کلاینت نیز اشاره کنیم:
-
- برای تهیه Thick Client نیاز است تا هزینه اولیه زیادی پرداخت کنید و نسبت به مبلغ پرداختی میزان منابع و قدرت پردازشی متفاوت خواهد بود.
- مسئولیت بیشتری در قبال دادههای خود دارید و باید بهصورت مستمر و مداوم از دادههای خود پشتیبان بگیرید.
- امنیت دادهها و منابع برعهده صاحب یا کاربر کلاینت خواهد بود و در صورت خرابی آن، مسئولیت بر گردن شماست.
Thin client (کلاینت لاغر)
درست برعکس کلاینت قبلی، Thin Client یا مشتری لاغر نوعی از کلاینتها است که بهشدت برای پردازش اطلاعات، ذخیرهسازی آنها، انتقال دادهها، اجرای برنامههای مختلف و… به منابع سرور متکی است. در حقیقت این نوع مشتریها، کامپیوترهای ارزانقیمت و کمهزینهای هستند که تنها برای انجام برخی کارهای ضروری منابع لازم را دارند. اما برای عملیاتهای دیگر باید آنلاین و به سرور متصل بوده تا به منابع آن دسترسی داشته باشند.
برای مثال کامپیوترهای موجود در دانشگاهها و کتابخانهها از این دسته از Clientها هستند، زیرا نمیتوانید مثلا فوتوشاپ را بر روی آن اجرا کنید. چون حافظه کافی و قدرت مناسب را برای اجرای آن ندارند. اما در مقابل بسیار ارزانقیمت بوده و با بودجه کم میتوان تعداد زیادی Thin کلاینت تهیه کرد. از مشتریان لاغر برای کارهای سادهای مانند وبگردی، خواندن مقاله، نوشتن متن و… استفاده میشود.
اما همواره با یک اتصال دائمی میتوانید به منابع نامحدود سرورها دسترسی داشته باشید و از قدرت پردازشی بالای آن استفاده کنید. مزایا و معایب این نوع مشتری عبارتاند از:
-
- برای تهیه آنها نیاز بهصرف هزینه زیاد نیست و بسیار ارزانقیمت هستند.
- امنیت بالاتری نسبت به Thick کلاینتها دارند، زیرا امنیت سرورها را شرکتها ارائهدهنده تضمین میکند و مطمئنا یک شرکت برای حفظ اعتبار و درآمد خود امنیت سرورها را در اولویت قرار میدهد.
- طول عمر بیشتری دارند و همچنین نیاز به انرژی کمی برای راهاندازی و استفاده از آنها است.
- اما بهشدت وابسته به اتصال مداوم برای استفاده بوده و درحقیقت بدون ارتباط با سرور نمیتوان انتظار زیادی از Thin Client داشت.
- کندتر از نوع قبلی است زیرا دادهها و درخواستها باید مسیر اتصال به سرور را طی کنند و همچنین ضعیفتر نیز هستند.
- پهنای باند و میزان منابع سرورهایی که قرار است اجاره شوند باید بهدقت اندازهگیری شوند تا به مشکل برنخورید.
Hybrid client (کلاینت ترکیبی)
از ترکیب دو مشتری قبلی، Hybrid Client به دست خواهد آمد. زمانی نیاز است تا یک کلاینت با منابع کافی (نه غنی) داشته باشیم تا مقداری از خواستههای کاربر را برآورده سازد و همچنین با اتصال به یک سرور از منابع آن نیز استفاده شود. مثلا استفاده از کامپیوتر با 128 گیگ حافظه SSD به همراه استفاده از سرویس گوگل درایو (google drive) دقیقا یک کلاینت ترکیبی را تشکیل میدهد. زیرا با حافظه SSD میتوان برنامههای سنگین را بدون وابستگی به سرور اجرا کرد اما برای ذخیره دادهها از سرویسدهنده (سرور) بهره برد.
Zero client (کلاینت صفر)
کلاینت صفر در ظاهر ممکن است با Thin Client اشتباه گرفته شود، زیرا تا میزان زیادی به همدیگر شبیه هستند. برای مثال هر دو برای انجام درخواستهای اصلی کاربر به سرور نیاز دارند و بدون اتصال دائمی نمیتوان کار زیادی با آنها انجام داد. اما Zero Client وابستگی بیشتری به سرور، نسبت به کلاینت لاغر، داشته و در حقیقت بدون اتصال هیچ کاری نمیتوانید با آن انجام دهید.
بر روی کلاینت لاغر سیستمعامل نصب میشود و گفته شد که میتوان با آن کارهای سادهای مانند وبگردی انجام داد. ولی روی مشتری Zero حتی سیستمعامل نیز نصب نیست و تنها یک رابط کاربری برای اتصال به سرور وجود دارد.
برای درک بهتر این نوع کلاینت تصور کنید که یک جعبه وجود دارد تا سختافزارهایی مانند موس، کیبورد و نمایشگر به آن متصل شود. همچنین این باکس چند درگاه و شاید گیرنده بیسیم برای برقراری اتصال نیز دارد. روی Client صفر نمیتوانید هیچ دادهای ذخیره کنید چون فضایی برای این کار وجود ندارد. معایب و مزایای این مورد عبارتاند از:
-
- نیاز به نیروی بسیار ناچیز برای راهاندازی.
- امنیت بالا، چون سیستمعاملی وجود ندارد پس بدافزاری نیز در کار نیست.
- بسیار ارزان، حتی ارزانتر از Thin Clientها.
- تجربه کاربری خوب و بهبودیافته برای درخواستهای پیشبینی شده.
- امکان اتصال و مدیریت آسان چند دسکتاپ مجازی در یک Zero client.
- اندازه بسیار کوچک و سبک.
- اما عملکرد کلاینت صفر بهشدت به شبکه و سرور متکی است و در صورت کند بودن شبکه یا از دسترس خارجشدن سرور، کلاینت نیز مشکل پیدا میکند.
- همچنین بسیاری از این نوع کلاینتها تنها برای استفاده یک کاربر پیکربندی شده و در صورت استفاده کاربرد دیگر باید دوباره پیکربندی شود، در غیر این صورت ممکن است قفل شود.
تفاوت برنامه نویسی سمت سرور و سمت کلاینت
برنامهنویسی سمت سرور به برنامهای اطلاق میشود که روی سرور اجرا میشود و تمرکزش روی تولید محتوای پویاست. این نوع برنامهنویسی برای تعامل با پایگاه داده، دسترسی به فایلهای روی سرور، تعامل با سرورهای دیگر، پردازش ورودی کاربر و ساختار برنامههای کاربردی وب مورد استفاده قرار میگیرد. محبوبترین زبانهای برنامه نویسی سمت سرور عبارتاند از: C++، Java و JSP، PHP، Python و Ruby on Rails.
برنامه نویسی سمت کلاینت به برنامهای اطلاق میشود که روی دستگاه کلاینت اجرا میشود و بر رابط کاربری و سایر فرآیندها مانند خواندن و یا نوشتن کوکیها تمرکز دارد. از این برنامهنویسی برای ارسال درخواست به سرور، تعامل با فضای ذخیرهسازی محلی، تعامل با فضای ذخیرهسازی موقت، ایجاد صفحات وب تعاملی و عملکرد به عنوان رابط بین کلاینت و سرور استفاده میشود. محبوبترین زبانهای برنامه نویسی محبوب سمت کلاینت عبارتاند AJAX، CSS، HTML، Javascript و VBScript.
مطالعه مقاله تین کلاینت را پیشنهاد می دهیم.
تفاوت رندر سمت سرور و سمت کلاینت
رندر سمت سرور اشاره میکند به توانایی یک برنامه کاربردی برای تبدیل فایلهای HTML روی سرور به یک صفحه کاملا رندر شده برای مشتری. مرورگر وب برای دریافت اطلاعات درخواستی برای سرور ارسال میکند. پاسخ این درخواست معمولا در چند میلیثانیه ارسال میشود. موتورهای جستجو میتوانند محتوا را قبل از تحویل ایندکس کنند و بهطور کامل بخزند. این ویژگی رندر سمت سرور را برای سئوی وبسایتها بسیار مفید میکند.
در رندر سمت کلاینت، به جای آنکه کل محتوا از سند HTML دریافت شود، روی مرورگر و با استفاده از کتابخانه جاوا اسکریپت سمت سرویسگیرنده رندر میشود. به این ترتیب با بارگذاری یک صفحه جدید، مرورگر درخواست جدیدی برای سرور نخواهد فرستاد. این مسئله میتواند روی رتبهبندی موتورهای جستجو تأثیر منفی بگذارد؛ چون محتوا تا زمانی که صفحه در مرورگر بارگذاری نشده، رندر هم نمیشود. با این حال رندر وبسایت در این مدل یعنی سمت کلاینت سریعتر از رندر سمت سرور اتفاق میافتد.
تفاوت مدل کلاینت – سرور و مدل همتا به همتا
مدل همتا به همتا (نظیر به نظیر) P2P (Peer-to-Peer) یک مدل ارتباطی غیرمتمرکز است که در آن همه گرهها در شبکه قابلیتهای معادل دارند و میتوانند همزمان هم به عنوان کلاینت و هم به عنوان سرور عمل کنند.
در محاسبات همتا به همتا گرهها به طور جمعی از منابع استفاده میکنند و ارتباط میان آنها مستقیما بر اساس تقاضاهای آنهاست. در پروتکل ارتباطات همتا به همتا، یک الگوریتم بار را متعادل میکند (عملیات لود بالانسینگ)، برای جبران خرابی منابع همتاهای دیگری در دسترس قرار میدهد و درخواستهای ارسالی را با تغییر ظرفیت بار و دسترسیپذیری همتایان تغییر مسیر میدهد. میتوان گفت مزیت اصلی شبکههای همتا به همتا، توانایی گسترش شبکه برای مدیریت تعداد زیادی از کلاینتهاست. هرچقدر تعداد کلاینتها زیاد شود، شبکه برای پاسخگویی به نیاز آنها گسترش مییابد.
در محاسبات مشتری-سرور که یک مدل ارتباطی متمرکز است، سرور به عنوان گره مرکزی با سایر گرههای کلاینت ارتباط برقرار میکند. مزیت عمده این مدل نسبت به مدل همتا به همتا، توانایی مدیریت دادهها و برنامهها روی یک سرور کاملا متمرکز است که فواید خود را دارد.
پاور سرور چیست؟ برای آشنایی بیشتر مقاله مورد نظر را از دست ندهید.
جمعبندی
در این مقاله سعی شد تا با بررسی مفهوم Client و انواع آن، به درک درستی از این اصطلاح کاربردی در شبکه و computer network برسیم. بهصورت خلاصه یک Client یا مشتری به تجهیزات سختافزاری یا نرمافزاری گفته میشود که درخواستی را برای استفاده از خدمات سرویسدهندهای ارسال میکنند. سیستم شخصی (PC) یا گوشی هوشمندی که الان در دست شماست، یک مشتری یا کلاینت محسوب میشود. امیدواریم خواندن این مقاله برای شما مفید بوده باشد.
کلاینت به هر سختافزار یا نرمافزار رایانهای گفته میشود که درخواست دسترسی به سرویس ارائهشده توسط سرور را دارد. در معماری کلاینت-سرور، کلاینتها معمولاً همان برنامهها یا کاربرانی هستند که درخواست میفرستند.
انواع تجهیزات شبکه مثل هاب، سوئیچ، روتر، پل، دروازه، مودم، تکرار کننده و نقطه دسترسی به کلاینت کمک میکنند به سرور متصل گردد.
سرور یک نمونه سخت افزار یا نرم افزاری است که سرویس خاصی به مشتریان خود ارائه میکند. مثلا کاربران شبکه از وب سرور، دامین سرور و ایمیل سرور استفاده میکنند. اما کلاینت یک برنامه کاربردی است که کاربر از آن برای دسترسی به خدمات سرور استفاده میکند.
اگر اقدامی سمت سرویس گیرنده انجام گیرد به آن سمت کلاینت (Client Side) و اگر اقدامی سمت سرور انجام شود، به آن سمت سرور (Server Side) گفته میشود.
تیک کلاینت (Thick Client) یا فت کلاینت (Fat Client)، تین کلاینت (Thin Client) و نهایتا هیبرید کلاینت (Hybrid Client) ۳ دستهبندی کلاینت بر اساس میزان پردازش آنهاست.
دیدگاه (2)
سلام. استفاده کردم و مفید بود برای افزایش اطلاعات.
ولی جواب سوالم رو نگرفتم.
با تشکر.
سلام وقت به خیر
آیا میشه کلاینت رو خودمون تعریف کنیم که از چه نوعی باشه؟