JWEBSERVER(1) JDK Commands JWEBSERVER(1)

jwebserver - راه‌اندازی وب‌سرور ساده جاوا

jwebserver [options]

گزینه‌های خط فرمان. برای شرح تفصیلی گزینه‌ها، بخش گزینه‌ها (OPTIONS) را ببینید.

ابزار jwebserver یک وب‌سرور کمینه HTTP ارائه می‌دهد که برای ساخت پیش‌نمونه (prototyping)، آزمایش، و اشکال‌زدایی طراحی شده است. این ابزار یک سلسله‌مراتب دایرکتوری واحد را ارائه داده و فقط فایل‌های استاتیک را سرویس‌دهی می‌کند. تنها از 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 روشی برنامه‌نویسی‌شده برای دریافت سرور و اجزای آن جهت استفاده مجدد و توسعه فراهم می‌کند.

jwebserver [-b bind address] [-p port] [-d directory]
           [-o none|info|verbose] [-h to show options]
           [-version to show version information]

پیام راهنما را نمایش داده و خارج می‌شود.
آدرسی که باید به آن متصل (bind) شود را مشخص می‌کند. پیش‌فرض: 127.0.0.1 یا ::1 (loopback). برای تمام رابط‌ها از -b 0.0.0.0 یا -b :: استفاده کنید.
دایرکتوری مورد نظر برای سرویس‌دهی را مشخص می‌کند. پیش‌فرض: دایرکتوری جاری.
قالب خروجی را مشخص می‌کند. none | info | verbose. پیش‌فرض: info.
درگاهی (port) که باید به آن گوش دهد را مشخص می‌کند. پیش‌فرض: 8000.
اطلاعات نسخه را نمایش داده و خارج می‌شود.

برای متوقف کردن سرور، کلیدهای Ctrl + C را فشار دهید.

دستور زیر Simple Web 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

به‌طور پیش‌فرض، سرور در پیش‌زمینه اجرا می‌شود و به آدرس loopback و پورت 8000 متصل می‌گردد. این تنظیمات با گزینه‌های -b و -p قابل تغییر است. برای مثال، جهت اتصال Simple Web Server به تمام رابط‌ها، از دستور زیر استفاده کنید:

$ 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 مشخص کرد.

به‌طور پیش‌فرض، تمامی درخواست‌ها در کنسول ثبت می‌شوند. خروجی شبیه به نمونه زیر است:

127.0.0.1 - - [10/Feb/2021:14:34:11 +0000] "GET /some/subdirectory/ HTTP/1.1" 200 -

خروجی ثبت گزارش‌ها را می‌توان با گزینه -o تغییر داد. تنظیم پیش‌فرض info است. حالت verbose علاوه بر این، هدرهای درخواست و پاسخ و همچنین مسیر مطلق منبع درخواستی را نیز شامل می‌شود.

سرور پس از راه‌اندازی موفقیت‌آمیز، تا زمان توقف به اجرای خود ادامه می‌دهد. در سیستم‌عامل‌های یونیکس، می‌توان با ارسال سیگنال SIGINT (کلیدهای Ctrl+C در پنجره ترمینال) سرور را متوقف کرد.

گزینه -h پیامی راهنما شامل کاربرد و گزینه‌های ابزار jwebserver را نمایش می‌دهد.

2026 JDK 26.0.2.1