.\" Automatically generated by Pandoc 3.10.2 .\" .TH "JWEBSERVER" "1" "2026" "JDK 25.0.4.1" "JDK Commands" .SH "نام (NAME)" jwebserver \- راه‌اندازی وب‌سرور ساده جاوا (Java Simple Web Server) .SH "خلاصه دستور (SYNOPSIS)" \f[CR]jwebserver\f[R] [\f[I]گزینه‌ها\f[R]] .TP \f[I]گزینه‌ها\f[R] گزینه‌های خط فرمان. برای توضیحات دقیق گزینه‌ها، به بخش \f[B]گزینه‌ها\f[R] مراجعه کنید. .SH "توضیحات (DESCRIPTION)" ابزار \f[CR]jwebserver\f[R] یک کارساز وب (HTTP server) کمینه را ارائه می‌دهد که برای نمونه‌سازی اولیه، آزمایش و اشکال‌زدایی طراحی شده است. این سرور یک سلسله‌مراتب منفرد دایرکتوری را ارائه می‌دهد و تنها فایل‌های ایستا (static) را سرویس‌دهی می‌کند. تنها پروتکل HTTP/1.1 پشتیبانی می‌شود؛ پروتکل‌های HTTP/2 و HTTPS پشتیبانی نمی‌شوند. .PP تنها درخواست‌های پایا (idempotent) از نوع HEAD و GET پردازش می‌شوند. هر درخواست دیگری پاسخ \f[CR]501 \- Not Implemented\f[R] یا \f[CR]405 \- Not Allowed\f[R] دریافت می‌کند. درخواست‌های GET به دایرکتوری در حال سرویس‌دهی به‌صورت زیر نگاشت می‌شوند: .IP \(bu 2 اگر منبع درخواستی یک فایل باشد، محتوای آن ارائه می‌شود. .IP \(bu 2 اگر منبع درخواستی یک دایرکتوری باشد که شامل یک فایل ایندکس (index) است، محتوای فایل ایندکس ارائه می‌شود. .IP \(bu 2 در غیر این صورت، نام تمام فایل‌ها و زیردایرکتوری‌های آن دایرکتوری فهرست می‌شوند. پیوندهای نمادین (symbolic links) و فایل‌های پنهان نه فهرست می‌شوند و نه سرویس‌دهی. .PP انواع MIME با استفاده از جدول توکار، به‌صورت خودکار پیکربندی می‌شوند. به عنوان نمونه، فایل‌های \f[CR].html\f[R] به‌صورت \f[CR]text/html\f[R] و فایل‌های \f[CR].java\f[R] به‌صورت \f[CR]text/plain\f[R] ارائه می‌شوند. .PP ابزار \f[CR]jwebserver\f[R] در ماژول jdk.httpserver قرار دارد و می‌توان آن را به‌صورت جایگزین با دستور \f[CR]java \-m jdk.httpserver\f[R] نیز راه‌اندازی کرد. این ابزار بر پایه پیاده‌سازی سرور وب در بسته \f[CR]com.sun.net.httpserver\f[R] بنا شده است. کلاس \f[CR]com.sun.net.httpserver.SimpleFileServer\f[R] روشی برنامه‌نویسی برای واکشی سرور و اجزای آن جهت استفاده مجدد و توسعه فراهم می‌آورد. .SH "نحوه استفاده (USAGE)" .IP .EX jwebserver [\-b آدرس اتصال] [\-p درگاه] [\-d دایرکتوری] [\-o none|info|verbose] [\-h جهت نمایش گزینه‌ها] [\-version جهت نمایش اطلاعات نگارش] .EE .SH "گزینه‌ها (OPTIONS)" .TP \f[CR]\-h\f[R] یا \f[CR]\-?\f[R] یا \f[CR]\-\-help\f[R] پیام راهنما را چاپ کرده و خارج می‌شود. .TP \f[CR]\-b\f[R] \f[I]addr\f[R] یا \f[CR]\-\-bind\-address\f[R] \f[I]addr\f[R] آدرسی را مشخص می‌کند که سرور باید به آن متصل (bind) شود. پیش‌فرض: 127.0.0.1 یا ::1 (لوپ‌بک). برای تمام رابط‌ها از \f[CR]\-b 0.0.0.0\f[R] یا \f[CR]\-b ::\f[R] استفاده کنید. .TP \f[CR]\-d\f[R] \f[I]dir\f[R] یا \f[CR]\-\-directory\f[R] \f[I]dir\f[R] دایرکتوری مورد نظر جهت سرویس‌دهی را مشخص می‌کند. پیش‌فرض: دایرکتوری جاری. .TP \f[CR]\-o\f[R] \f[I]level\f[R] یا \f[CR]\-\-output\f[R] \f[I]level\f[R] قالب خروجی را مشخص می‌کند. مقادیر مجاز: \f[CR]none\f[R] | \f[CR]info\f[R] | \f[CR]verbose\f[R]. پیش‌فرض: \f[CR]info\f[R]. .TP \f[CR]\-p\f[R] \f[I]port\f[R] یا \f[CR]\-\-port\f[R] \f[I]port\f[R] درگاه (port) مورد نظر جهت گوش فرا دادن را مشخص می‌کند. پیش‌فرض: 8000. .TP \f[CR]\-version\f[R] یا \f[CR]\-\-version\f[R] اطلاعات نگارش را چاپ کرده و خارج می‌شود. .PP برای متوقف کردن سرور، کلیدهای \f[CR]Ctrl + C\f[R] را فشار دهید. .SH "راه‌اندازی سرور (STARTING THE SERVER)" دستور زیر وب‌سرور ساده را راه‌اندازی می‌کند: .IP .EX $ jwebserver .EE .PP در صورت راه‌اندازی موفقیت‌آمیز، سرور پیامی را در \f[CR]System.out\f[R] چاپ می‌کند که آدرس محلی و مسیر مطلق دایرکتوری در حال سرویس‌دهی را فهرست می‌کند. برای نمونه: .IP .EX $ jwebserver Binding to loopback by default. For all interfaces use \(dq\-b 0.0.0.0\(dq or \(dq\-b ::\(dq. Serving /cwd and subdirectories on 127.0.0.1 port 8000 URL http://127.0.0.1:8000 .EE .SH "پیکربندی (CONFIGURATION)" به‌طور پیش‌فرض، سرور در پیش‌زمینه اجرا شده و به آدرس لوپ‌بک و درگاه 8000 متصل می‌شود. این رفتار را می‌توان با گزینه‌های \f[CR]\-b\f[R] و \f[CR]\-p\f[R] تغییر داد. برای نمونه، جهت متصل کردن وب‌سرور ساده به تمام رابط‌های شبکه، از دستور زیر استفاده کنید: .IP .EX $ 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 .EE .PP توجه داشته باشید که این کار وب‌سرور را برای تمام میزبان‌های موجود در شبکه در دسترس قرار می‌دهد. \f[I]این کار را انجام ندهید مگر آن‌که مطمئن باشید سرور هیچ‌گونه اطلاعات حساسی را فاش نمی‌کند.\f[R] .PP به عنوان نمونه‌ای دیگر، برای اجرا روی درگاه 9000 از دستور زیر استفاده کنید: .IP .EX $ jwebserver \-p 9000 .EE .PP به‌طور پیش‌فرض، فایل‌های دایرکتوری جاری ارائه می‌شوند. می‌توان دایرکتوری متفاوتی را با گزینه \f[CR]\-d\f[R] تعیین کرد. .PP به‌طور پیش‌فرض، هر درخواست در کنسول ثبت (log) می‌شود. خروجی به این صورت است: .IP .EX 127.0.0.1 \- \- [10/Feb/2021:14:34:11 +0000] \(dqGET /some/subdirectory/ HTTP/1.1\(dq 200 \- .EE .PP خروجی گزارش‌گیری را می‌توان با گزینه \f[CR]\-o\f[R] تغییر داد. تنظیم پیش‌فرض برابر با \f[CR]info\f[R] است. تنظیم \f[CR]verbose\f[R] علاوه بر این شامل هدرهای درخواست و پاسخ و همچنین مسیر مطلق منبع درخواستی است. .SH "متوقف کردن سرور (STOPPING THE SERVER)" پس از راه‌اندازی موفقیت‌آمیز، سرور تا زمان متوقف شدن به کار خود ادامه می‌دهد. در بسترهای یونیکس، می‌توان سرور را با ارسال سیگنال \f[CR]SIGINT\f[R] (کلیدهای \f[CR]Ctrl+C\f[R] در پنجره ترمینال) متوقف کرد. .SH "گزینه راهنما (HELP OPTION)" گزینه \f[CR]\-h\f[R] یک پیام راهنما نمایش می‌دهد که نحوه استفاده و گزینه‌های \f[CR]jwebserver\f[R] را شرح می‌دهد.