JWEBSERVER(1) JDK Commands JWEBSERVER(1) نام (NAME) jwebserver-openjdk21 - سرور وب ساده و سبک برای ارائه فایل‌های استاتیک در OpenJDK 21 خلاصه دستور (SYNOPSIS) jwebserver [گزینه‌ها] گزینه‌ها گزینه‌های خط فرمان. برای توضیحات دقیق گزینه‌ها، بخش گزینه‌ها (OPTIONS) را ببینید. توضیحات (DESCRIPTION) ابزار jwebserver یک سرور HTTP مینیمال و ساده ارائه می‌دهد که برای ساخت نمونه اولیه (پروتوتایپ)، آزمایش و اشکال‌زدایی طراحی شده است. این سرور سلسله‌مراتب یک پوشه را مدیریت کرده و فقط فایل‌های استاتیک (ایستا) را ارائه می‌دهد. تنها از پروتکل HTTP/1.1 پشتیبانی می‌شود؛ نسخه‌های HTTP/2 و HTTPS پشتیبانی نمی‌شوند. تنها به درخواست‌های پایا (idempotent) از نوع HEAD و GET پاسخ داده می‌شود. هرگونه درخواست دیگر با پاسخ 501 - Not Implemented یا 405 - Not Allowed مواجه می‌شود. درخواست‌های GET به صورت زیر به پوشه سرویس‌دهی‌شده نگاشت می‌شوند: • اگر منبع درخواست‌شده یک فایل باشد، محتوای آن ارسال می‌شود. • اگر منبع درخواست‌شده پوشه‌ای حاوی یک فایل شاخص (index) باشد، محتوای فایل شاخص ارسال می‌شود. • در غیر این صورت، نام تمام فایل‌ها و زیرپوشه‌های آن پوشه فهرست می‌شود. پیوندهای نمادین (Symbolic links) و فایل‌های پنهان فهرست یا ارسال نمی‌شوند. انواع MIME به طور خودکار و با استفاده از جدول داخلی پیکربندی می‌شوند. به عنوان مثال، فایل‌های .html به صورت text/html و فایل‌های .java به صورت text/plain ارائه می‌شوند. ابزار jwebserver در ماژول jdk.httpserver قرار دارد و همچنین می‌توان آن را با دستور java -m jdk.httpserver اجرا کرد. این ابزار بر پایه پیاده‌سازی سرور وب در بسته com.sun.net.httpserver توسعه یافته است. کلاس com.sun.net.httpserver.SimpleFileServer یک روش برنامه‌نویسی برای دریافت سرور و اجزای آن جهت استفاده مجدد و توسعه ارائه می‌دهد. نحوه استفاده (USAGE) jwebserver [-b bind address] [-p port] [-d directory] [-o none|info|verbose] [-h to show options] [-version to show version information] گزینه‌ها (OPTIONS) -h یا -? یا --help پیام راهنما را چاپ کرده و خارج می‌شود. -b addr یا --bind-address addr آدرس مبدا برای اتصال (bind) را مشخص می‌کند. پیش‌فرض: 127.0.0.1 یا ::1 (حلقه محلی / loopback). برای تمام رابط‌های شبکه از -b 0.0.0.0 یا -b :: استفاده کنید. -d dir یا --directory dir پوشه‌ای را که باید ارائه شود مشخص می‌کند. پیش‌فرض: پوشه جاری. -o level یا --output level قالب خروجی لاگ را تعیین می‌کند. none | info | verbose. پیش‌فرض: info. -p port یا --port port درگاه (port) شنود را مشخص می‌کند. پیش‌فرض: 8000. -version یا --version اطلاعات نسخه را چاپ کرده و خارج می‌شود. برای متوقف کردن سرور، کلیدهای Ctrl + C را فشار دهید. راه‌اندازی سرور (STARTING THE SERVER) دستور زیر «سرور وب ساده» را راه‌اندازی می‌کند: $ jwebserver اگر راه‌اندازی با موفقیت انجام شود، سرور پیامی در System.out چاپ می‌کند که آدرس محلی و مسیر مطلق پوشه در حال سرویس‌دهی را نشان می‌دهد. برای مثال: $ jwebserver Binding to loopback by default. For all interfaces use "-b 0.0.0.0" or "-b ::". Serving /cwd and subdirectories on 127.0.0.1 port 8000 URL http://127.0.0.1:8000/ پیکربندی (CONFIGURATION) به طور پیش‌فرض، سرور در پیش‌زمینه اجرا شده و به آدرس لوپ‌بک و درگاه 8000 متصل می‌شود. این مقدار را می‌توان با گزینه‌های -b و -p تغییر داد. برای مثال، برای اتصال سرور وب ساده به تمام رابط‌های شبکه: $ jwebserver -b 0.0.0.0 Serving /cwd and subdirectories on 0.0.0.0 (all interfaces) port 8000 URL http://123.456.7.891:8000/ توجه داشته باشید که این کار سرور وب را برای تمام میزبان‌های موجود در شبکه در دسترس قرار می‌دهد. این کار را انجام ندهید مگر اینکه مطمئن باشید سرور هیچ اطلاعات حساسی را فاش نمی‌کند. به عنوان مثال دیگر، برای اجرا روی درگاه 9000 از دستور زیر استفاده کنید: $ jwebserver -p 9000 به طور پیش‌فرض، فایل‌های پوشه جاری ارائه می‌شوند. می‌توان پوشه دیگری را با گزینه -d مشخص کرد. به طور پیش‌فرض، هر درخواست در کنسول ثبت (log) می‌شود. خروجی شبیه به این است: 127.0.0.1 - - [10/Feb/2021:14:34:11 +0000] "GET /some/subdirectory/ HTTP/1.1" 200 - خروجی لاگ را می‌توان با گزینه -o تغییر داد. تنظیم پیش‌فرض info است. تنظیم verbose علاوه بر این، هدرهای درخواست و پاسخ و همچنین مسیر مطلق منبع درخواستی را نیز شامل می‌شود. متوقف کردن سرور (STOPPING THE SERVER) پس از راه‌اندازی موفقیت‌آمیز، سرور تا زمانی که متوقف شود به کار خود ادامه می‌دهد. در پلتفرم‌های یونیکس، می‌توان با ارسال سیگنال SIGINT (Ctrl+C در پنجره ترمینال) سرور را متوقف کرد. گزینه راهنما (HELP OPTION) گزینه -h یک پیام راهنما را نمایش می‌دهد که نحوه استفاده و گزینه‌های jwebserver را شرح می‌دهد. JDK 21 2023 JWEBSERVER(1)