JWEBSERVER(1) JDK Commands JWEBSERVER(1)

jwebserver - راه‌اندازی وب‌سرور ساده جاوا (Java Simple Web Server)

jwebserver [گزینه‌ها]

گزینه‌ها
گزینه‌های خط فرمان. برای توضیحات دقیق گزینه‌ها، به بخش گزینه‌ها مراجعه کنید.

ابزار jwebserver یک کارساز وب (HTTP server) کمینه را ارائه می‌دهد که برای نمونه‌سازی اولیه، آزمایش و اشکال‌زدایی طراحی شده است. این سرور یک سلسله‌مراتب منفرد دایرکتوری را ارائه می‌دهد و تنها فایل‌های ایستا (static) را سرویس‌دهی می‌کند. تنها پروتکل 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 آدرس اتصال] [-p درگاه] [-d دایرکتوری]
           [-o none|info|verbose] [-h جهت نمایش گزینه‌ها]
           [-version جهت نمایش اطلاعات نگارش]

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

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

دستور زیر وب‌سرور ساده را راه‌اندازی می‌کند:

$ 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

به‌طور پیش‌فرض، سرور در پیش‌زمینه اجرا شده و به آدرس لوپ‌بک و درگاه 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 علاوه بر این شامل هدرهای درخواست و پاسخ و همچنین مسیر مطلق منبع درخواستی است.

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

گزینه -h یک پیام راهنما نمایش می‌دهد که نحوه استفاده و گزینه‌های jwebserver را شرح می‌دهد.

2026 JDK 25.0.4.1