| HTTP(1) | General Commands Manual | HTTP(1) |
نام (NAME)
http - سرور ساده HTTP برای میزبانی سریع و بیدردسر یک پوشه
خلاصه دستور (SYNOPSIS)
http [OPTIONS] [DIRECTORY]
توضیحات (DESCRIPTION)
Host These Things Please - یک سرور ساده HTTP برای میزبانی سریع و بیدردسر یک پوشه.
هدف این است که برنامهای وجود داشته باشد که به یک باینری ساده کامپایل شود و بتوان از طریق خط فرمان لینوکس به سرعت پوشه جاری را با استفاده از پروتکل HTTP میزبانی کرد. همهچیز دارای مقادیر پیشفرض معقولی است تا نیازی نباشد که پارامترهایی مانند پورت مورد نظر را به آن پاس دهید.
گزینهها (OPTIONS)
[DIR]
-
دایرکتوری مورد نظر برای میزبانی. باید از قبل وجود داشته باشد. پیشفرض: دایرکتوری کاری جاری.
-p --port [PORT]
-
پورتی که سرور روی آن اجرا میشود. باید عددی بین 1 تا 65'535 باشد. مقدار 0 پورت تصادفی منتسبشده توسط سیستمعامل را انتخاب میکند. پیشفرض: نخستین پورت آزاد از 8000 به بالا.
-a --address [ADDRESS]
-
آدرس IP که سرور به آن متصل (bind) میشود. پیشفرض: 0.0.0.0.
-t --temp-dir [TEMP]
-
دایرکتوری موقت برای ذخیره دادههای قابل نوشتن. تنها در صورتی اثر دارد که --allow-write مشخص شده باشد یا --no-encode غیرفعال نباشد. پیشفرض: $TEMP.
--ssl [TLS_IDENTITY_FILE]
-
فایل هویت TLS برای رمزگذاری ارتباطات. رمز عبور از متغیر محیطی HTTP_SSL_PASS خوانده میشود، یا در صورت عدم وجود این متغیر، خالی فرض میشود. پیشفرض: None.
--gen-ssl
-
تولید گواهی TLS خودامضا (self-signed) یکبارمصرف با استفاده از openssl و استفاده از آن در این نشست. رمز عبور گواهی رشته خالی است، مگر در MacOS که به دلیل امتناع libssl پلتفرم از وارد کردن گواهیهای بدون رمز، مقدار آن "password" است. ناسازگار با --ssl. پیشفرض: false.
--auth [USERNAME[:PASSWORD]]
-
اطلاعات برای احراز هویت سراسری (global). معادل با --path-auth با مسیر ریشه و همان اطلاعات هویتی است. این گزینه منسوخ شده و در انتشار بعدی با نسخه فعلی --path-auth جایگزین خواهد شد. در طرحهای جدید برای جلوگیری از رفتارهای پیشبینینشده از --path-auth استفاده کنید. پیشفرض: None.
--gen-auth
-
تولید یک جفت نامکاربری:رمزعبور یکبارمصرف برای احراز هویت سراسری. طوری عمل میکند که گویی --auth با اعتبارنامههای تولیدشده مشخص شده است. این گزینه منسوخ شده و در انتشار بعدی با نسخه فعلی --gen-path-auth جایگزین خواهد شد. در طرحهای جدید برای جلوگیری از رفتارهای پیشبینینشده از --gen-path-auth استفاده کنید. ناسازگار با --auth. پیشفرض: false.
--path-auth [PATH=[USERNAME[:PASSWORD]]]
-
اطلاعات احراز هویت برای هر مسیر به صورت مجزا (per-path). مسیر مشخصشده PATH برای دسترسی به این اعتبارنامه نیاز خواهد داشت. اگر اعتبارنامهای تعیین نشود، احراز هویت برای آن مسیر غیرفعال میشود، حتی اگر برای مسیرهای والد یا به صورت سراسری احراز هویت تعیین شده باشد. این مسیرها میتوانند به طور دلخواه تودرتو باشند. مسیر PATH از نظر اسلشهای ابتدا و انتها پاکسازی و نرمال میشود. مشخص کردن چندباره یک PATH خطا محسوب میشود. پیشفرض: خالی.
--gen-path-auth [PATH]
-
تولید یک جفت نامکاربری:رمزعبور یکبارمصرف برای احراز هویت در مسیر PATH. نام کاربری از ۶ تا ۱۲ نویسه الفبایی-عددی تصادفی تشکیل شده، در حالی که رمز عبور شامل ۱۰ تا ۲۵ نویسه تصادفی از بیشتر نویسههای قابل چاپ ASCII است. مانند آن عمل میکند که --path-auth با مسیر PATH و اعتبارنامه تولیدشده تعیین شده باشد. ناسازگار با --path-auth با مسیر PATH معادل. پیشفرض: خالی.
--proxy [HEADER-NAME:CIDR]
-
در نظر گرفتن HEADER-NAME به عنوان هدر پروکسی forwarded-for هنگامی که درخواست از نشانی درون شبکه مشخصشده توسط CIDR ارسال شده باشد. اگر هدر تنظیم شده باشد ولی درخواست خارج از شبکه باشد، نادیده گرفته میشود. به هر تعداد بار میتواند تکرار شود. پیشفرض: none.
--proxy-redir [HEADER-NAME:CIDR]
-
در نظر گرفتن HEADER-NAME به عنوان هدر پروکسی X-Original-URL هنگامی که درخواست از آدرس درون شبکه مشخصشده توسط CIDR ارسال شده باشد: این فقط برای هدرهای 303 See Other Location: هنگام تغییر مسیر ناشی از فایل ایندکس استفاده میشود. به هر تعداد بار میتواند تکرار شود. پیشفرض: none.
-m --mime-type [EXTENSION:MIME-TYPE]
-
بازگرداندن MIME-TYPE برای فایلهای با پسوند EXTENSION. اگر EXTENSION رشته خالی باشد، آن نوع MIME برای فایلهای بدون پسوند بازگردانده میشود. نوع MIME پیشفرض مطابق خروجی کریت mime_guess است (در صورت وجود)، در غیر این صورت برای فایلهای باینری "application/octet-stream" و برای متنی "text/plain". به هر تعداد بار میتواند تکرار شود. پیشفرض: none.
--request-bandwidth [BYTES]
-
محدود کردن پهنای باند هر درخواست به مقدار BYTES در ثانیه. میتواند دارای پسوند پیشوندهای دودویی [KMGTPE] یا پیشوندهای SI [kmgtpe] باشد. مقدار صفر محدودیت را غیرفعال میکند. پیشفرض: 0.
-H --header [NAME: VALUE]...
-
افزودن هدرهای مشخصشده به تمام پاسخها. فاصلههای ابتدایی VALUE حذف میشوند.
-s --no-follow-symlinks
-
دنبال نکردن پیوندهای نمادین (symlinks) هنگام دسترسی به فایلها. اگر پیوند نمادینی درخواست شود و این گزینه فعال باشد، طوری رفتار میشود که گویی اصلاً وجود ندارد.
-r --sandbox-symlinks
-
محدودسازی/قرنطینه کردن مقاصد پیوندهای نمادین تنها به زیرشاخههای مستقیم دایرکتوری میزبانیشده. اگر فایلی خارج از زیرشاخههای مستقیم پوشه میزبانیشده درخواست شود و این فلگ روشن باشد، طوری رفتار میشود که گویی وجود ندارد.
-w --allow-write
-
مجاز شمردن عملیات نوشتن روی سرور. عملیات نوشتن پشتیبانیشده کنونی: PUT و DELETE. با درخواستهای PUT، هدرهای X-Last-Modified/X-OC-MTime میتوانند برحسب میلیثانیه/ثانیه از مبدأ زمان (epoch) تعیین شوند و روی st_mtim فایل تنظیم میگردند. به طور پیشفرض غیرفعال (false) است، زیرا معمولاً چیزی نیست که بخواهید به صورت تصادفی مجاز باشد.
-D --convenient-webdav
-
مجاز کردن درخواستهای WebDAV از نوع MKCOL (ایجاد دایرکتوری) و MOVE (تغییر نام). این موارد از رابط کاربری وب قابل دسترسی هستند. اینها درخواستهای نوشتن هستند، بنابراین بدون فلگ -w هیچ اثری ندارد. پیشفرض: false.
-d --webdav
-
پشتیبانی از درخواستهای پروتکل WebDAV: MKCOL (ایجاد پوشه) MOVE (تغییر نام) PROPFIND (باز کردن در کلاینت WebDAV) COPY (کپی کردن فایلها و پوشهها) PROPPATCH (تنظیم ویژگیهای فایل پس از بارگذاری با PUT) دستورات MKCOL و MOVE از رابط کاربری وب در دسترس هستند؛ سایر موارد، اتصال و مدیریت فایل را از طریق کلاینت WebDAV فعال میکنند. به طور پیشفرض غیرفعال (false) است. بر گزینه -D اولویت دارد.
-A --archives
-
اجازه درخواست بایگانیهای tar و ZIP با استفاده از curl -H 'Accept: application/tar' ... و با گنجاندن یک فرم در ایندکسهای تولیدشده. این ویژگی دو API تعریف میکند: 1. درخواست GET + هدر Accept شامل هر یک از موارد زیر: application/tar application/x-tar => tar application/zip application/x-zip-compressed => ZIP 2. درخواست POST + مقادیر نشانگر تعبیهشده در ایندکس تولیدشده (روش POST در سایر حالات پشتیبانی نمیشود) نتایج از نظر منطقی معادل رفتن به مسیر درخواستی با دستور "cd -L" (مشروط به گزینههای -s و -r) و سپس اجرای "tar -c * .*" است (بنابراین پیوندهای نمادین هرگز دنبال نمیشوند، به عنوان مثال). اگر فایلی یا پوشهای باز نشود، از آن صرفنظر میشود و فرآیند بایگانی متوقف نمیگردد. فایلهای دارای st_nlink > 1 شناسایی شده و برای آرشیوهای tar جمعآوری میشوند. فایلهای ZIP تنها شامل فایلهای معمولی، پوشهها و پیوندهای نمادین هستند. فایلهایی که در صورت درخواست مستقیم انکود میشدند، با DEFLATE فشرده میشوند (مشروط به گزینه -e). اگر مسیر درخواستی یک فایل باشد، یک بایگانی تکفایلی ایجاد میشود. پیشفرض: false.
-l --no-listings
-
تولید نکردن فهرست فایلهای پوشه (directory listings). جدول رفتار گزینه --no-listings به همراه --no-indices: +------------+---------+---------+---------+---------+ | Path | Neither | -i | -l | -l -i | +============+=========+=========+=========+=========+ | /has-index | index | listing | index | 404 | | /no-index | listing | listing | 404 | 404 | +------------+---------+---------+---------+---------+ به طور پیشفرض غیرفعال (false) است چون عمدتاً برای اهداف اشکالزدایی کاربرد دارد.
-i --no-indices
-
ارائه ندادن خودکار فایل index در پوشههایی که دارای آن هستند. به طور پیشفرض غیرفعال (false) است چون عمدتاً برای اهداف اشکالزدایی کاربرد دارد.
-
هنگام تولید فایل ایندکس، به دنبال فایل README در پوشه ایندکسشونده میگردد؛ اگر وجود داشته باشد، آن را خوانده و در موقعیت دادهشده (پیشفرض bottom)، با قالب مشخصشده تزریق میکند (فرمت plain در تگ <pre> قرار میگیرد). آخرین گزینه درون یک گروه اعمال خواهد شد. هر تعداد فایل README را میتوان اضافه کرد و به همان ترتیب دادهشده قرار میگیرند. تمام صفحه ایندکس به همراه فایلهای گنجاندهشده در حافظه رم نگهداری میشود.
-e --no-encode
-
کدگذاری نکردن فایلهای سیستمفایل. فایلهای کدگذاریشده به جای نگهداری در حافظه در پوشه موقت ذخیره میشوند. به طور پیشفرض غیرفعال (false) است زیرا برای کاهش مصرف پهنای باند مفید است.
--encoded-filesystem FS_LIMIT --encoded-generated GEN_LIMIT
-
مصرف حداکثر فضای FS_LIMIT برای فایلهای کدگذاریشده سیستمفایل (در TEMP) و حداکثر حافظه GEN_LIMIT برای پاسخهای کدگذاریشده تولیدشده. آرگومانها یک عدد صحیح هستند که میتوانند با پسوند k (کیلوبایت)، m (مگابایت)، g (گیگابایت)، t (ترابایت) یا p (پتابایت) بدون حساسیت به بزرگی و کوچکی حروف، و به صورت اختیاری با حرف b همراه باشند. این سهمیه ممکن است به طور موقت در حین پاسخدهی به یک درخواست فراتر رود.
--encoded-prune MAX_AGE
-
پاکسازی دادههای ذخیرهشده کدگذاریشده که سن آنها بیشتر از MAX_AGE است. آرگومان برحسب ثانیه داده میشود و به صورت اختیاری میتواند با پسوندهای s (ثانیه)، m (دقیقه)، h (ساعت) یا d (روز) بدون حساسیت به حروف همراه باشد.
-x --strip-extensions
-
مجاز شمردن حذف پسوندهای ایندکس از مسیرهای ارائهشده: یک درخواست برای /file ممکن است توسط فایل /file.[s]htm[l] پاسخ داده شود. پیشفرض: false.
--404 FALLBACK-FILE
-
هنگام بازگرداندن پاسخ 404 به یک متد GET، به جای صفحه خطای تولیدشده، فایل FALLBACK-FILE به عنوان بدنه ارسال شود. مقدار FALLBACK-FILE یک مسیر در سیستم فایل است و مشمول محدودیتهای -s/-r نمیشود.
-q --quiet...
-
کاهش تدریجی حجم خروجی لاگها. تعیین این فلگ به تعداد N بار به شکل زیر عمل میکند: N == 0 – نمایش تمام خروجیها N >= 1 – عدم نمایش خطوط وضعیت سرویسدهی ("IP was served something") N >= 2 – عدم نمایش پیامهای راهاندازی به جز اطلاعات احراز هویت در صورت وجود N >= 3 – عدم نمایش تمام پیامهای راهاندازی
-Q --quiet-time
-
عدم درج برچسب زمانی (timestamp) در ابتدای خطوط لاگ.
-c --no-colour
-
عدم استفاده از رنگها در خروجی لاگ.
نکات (NOTES)
هنگام بازگرداندن فایلها از سیستم فایل، مقدار ETag بازگرداندهشده بر پایه سیستم فایل، i-node و زمان دقیق ویرایش فایل محاسبه میشود.
طبیعتاً این بدان معناست که هنگام ارائه فایلها از سیستمهای فایلی با زمانبندی نادقیق (مانند FAT با تفکیکپذیری زمانی ۱ ثانیهای)، ممکن است تغییرات از دید برنامههای کاربری استفادهکننده از ETag پنهان بماند (اگر فایلی در 2023-02-12T01:00:00.100000000 تغییر یافته باشد، کلاینتی پاسخی برای 2023-02-12T01:00:00.000000000 را درخواست و کش کرده باشد، و سپس فایل دوباره در 2023-02-12T01:00:00.900000000 ویرایش شود، درخواستهای بعدی با هدر If-None-Match: 2023-02-12T01:00:00.000000000 همگی پاسخ 304 Not Modified دریافت خواهند کرد).
این مورد مسئله چندان مهمی نیست؛ از FAT به عنوان یک سیستم فایل با کارایی بالا استفاده نکنید (یا درخواست را بدون کش مجدداً بارگذاری کنید)، و هدر If-Modified-Since نیز طبق طراحی در تمامی بکاندها تحت تأثیر این ویژگی قرار دارد.
مثالها (EXAMPLES)
http
-
میزبانی پوشه جاری روی نخستین پورت آزاد از 8000 به بالا، بدون دنبال کردن پیوندهای نمادین، و بدون مجوز نوشتن. نمونه خروجی: p:\Rust\http> http Hosting "." on port 8000 without TLS and no authentication... Ctrl-C to stop. 127.0.0.1:47880 was served directory listing for \\?\P:\Rust\http 127.0.0.1:47902 was served file \\?\P:\Rust\http\http.1.html as text/html 127.0.0.1:47916 was served file S:\Rust-target\doc\main.css as text/css 127.0.0.1:48049 asked for OPTIONS 127.0.0.1:47936 used disabled request method DELETE 127.0.0.1:48222 used disabled request method PUT ^C با فرض اینکه `P:\Rust\http\target` یک پیوند نمادین به `S:\Rust-target` باشد، درخواستهای زیر به ترتیب ارسال شدهاند: GET / GET /http.1.html GET /target/doc/main.css OPTIONS DELETE <path doesn't matter> PUT <path doesn't matter> خروجی بالا به عنوان مرجع برای سایر مثالها استفاده شده است.
http -s
-
مشابه مثال نخست، اما پیوندهای نمادین دنبال نمیشوند. نمونه تغییر خروجی: 127.0.0.1:47916 requested to GET nonexistent entity S:\Rust-target\doc\main.css
http -w
-
مشابه مثال نخست، اما با اجازه عملیات نوشتن. نمونه تغییر خروجی: 127.0.0.1:47936 deleted file \\?\P:\Rust\http\http.1.html 127.0.0.1:48222 created \\?\P:\Rust\http\index.html, size: 1033554B درخواست متناظر: DELETE /http.1.html PUT /index.html with request body containing roughly 1MB of data یک تغییر رفتاری دیگر این است که در این حالت، پوشه (و فایل) با نام "T:/-=- TEMP -=-/http-P-Rust-http/writes/" و "T:/-=- TEMP -=-/http-P-Rust-http/writes/index.html" ایجاد شدند در حالی که فایل "P:\Rust\http\http.1.html" حذف گردید (روی پوشهها نیز کار میکند).
http -w -t "../TEMP"
-
مشابه مثال پیشین، اما با استفاده از یک دایرکتوری موقت متفاوت. تغییرات رفتاری: پوشه و فایل ایجادشده با نامهای "P:/Rust/TEMP/http-P-Rust-http/writes/" و "P:/Rust/TEMP/http-P-Rust-http/writes/index.html" نامگذاری میشوند.
http -p 6969
-
مشابه مثال نخست، اما روی پورت 6969 میزبانی میشود. با فرض آزاد بودن پورت، نمونه تغییر خروجی: Hosting "." on port 6969 without TLS and no authentication... اگر پورت اشغال باشد، نمونه تغییر خروجی: Starting server failed: port taken. <EOF>
http -a 192.168.65.1
-
مشابه مثال نخست، اما روی آدرس 192.168.65.1 گوش فرا میدهد. با فرض اینکه آدرس قابل استفاده باشد، نمونه تغییر خروجی: Hosting "." on port 8000 under address 192.168.65.1 without TLS and no authentication... اگر آدرس غیرقابل دسترسی باشد یا وجود نداشته باشد، نمونه تغییر خروجی: Starting server failed: The requested address is not valid in its context. (os error 10049). <EOF>
HTTP_SSL_PASS=pwd http --ssl cert/http8k.p12
-
مشابه مثال نخست، اما ارتباط با فایل هویت cert/http8k.p12 و با رمز عبور "pwd" رمزگذاری میشود. با فرض صحیح بودن رمز عبور، نمونه تغییر خروجی: Hosting "." on port 8000 TLS certificate from "cert/http8k.p12" and no authentication...
http --gen-ssl
-
مشابه مثال نخست، اما ارتباط با یک فایل هویت خودامضای تازهتولیدشده رمزگذاری میشود. نمونه تغییر خروجی: Hosting "." on port 8000 with TLS certificate from "$TEMP/http-P-Rust-http/tls/tls.p12" and no authentication...
http --path-auth /=Pirate
-
مشابه مثال نخست، اما تمامی کلاینتها ملزم به ورود با نام کاربری "Pirate" هستند. نمونه تغییر خروجی: Hosting "." on port 8000 without TLS and basic authentication... Basic authentication credentials: Path Username Password / Pirate در صورت درخواست بدون احراز هویت: 127.0.0.1:15141 requested to GET http://127.0.0.1:8005/ without authorisation ارسال اعتبارنامه نامعتبر: 127.0.0.1:15142 requested to GET http://127.0.0.1:8005/ with invalid credentials "Pirate:memelord11" ارسال اعتبارنامه معتبر: 127.0.0.1:15142 correctly authorised to GET http://127.0.0.1:8005/ 127.0.0.1:15142 was served directory listing for \\?\P:\Rust\http
http --path-auth /=Pirate:memelord42
-
مشابه مثال نخست، اما ملزم کردن همه کلاینتها به ورود با نام کاربری "Pirate" و رمز عبور "memelord42". نمونه تغییر خروجی: Hosting "." on port 8000 without TLS and basic authentication... Basic authentication credentials: Path Username Password / Pirate memelord42 پیامهای لاگ هنگام ارسال درخواستها در بالا را ببینید.
http --gen-path-auth /
-
مشابه مثال نخست، اما با تولید یک جفت نامکاربری:رمزعبور و ملزم کردن همه کلاینتها به ورود با آن اطلاعات. نمونه تغییر خروجی: Hosting "." on port 8000 without TLS and basic authentication... Basic authentication credentials: Path Username Password / jOvm8yCp &gK=h&$-$HElLPb9HO% پیامهای لاگ هنگام ارسال درخواستها در بالا را ببینید.
http --path-auth /=admin:admin --gen-path-auth /target/debug --path-auth target/doc= --path-auth target/.rustc_info.json= --path-auth target/release/=releases
-
مشابه مثال نخست، اما دسترسی بدون احراز هویت به /target/doc و /target/.rustc_info.json مجاز است، دسترسی به /target/release با نام کاربری "releases" و بدون رمز عبور امکانپذیر است، دسترسی به /target/debug نیازمند یک جفت نامکاربری:رمزعبور تصادفی تولیدشده است، و سایر مسیرها با "admin:admin" محافظت میشوند. نمونه تغییر خروجی: Hosting "." on port 8000 without TLS and basic authentication... Basic authentication credentials: Path Username Password / admin admin /target/.rustc_info.json /target/debug PYld448 l=Z~vdp,zAt^<uvRyU.T<F /target/doc /target/release releases پیامهای لاگ هنگام ارسال درخواستها در بالا را ببینید.
http -r
-
مشابه مثال نخست، اما محدود کردن مسیرهای قابل دسترسی تنها به زیرشاخههای مستقیم دایرکتوری میزبانیشده. نمونه تغییر خروجی: 127.0.0.1:47916 requested to GET nonexistent entity S:\Rust-target\doc\main.css
http --proxy X-Forwarded-For:127.0.0.1 --proxy X-Proxied-For:192.168.1.0/24 --proxy-redir X-Original-URL:127.0.0.1
-
مشابه مثال نخست، اما در نظر گرفتن X-Forwarded-For و X-Proxied-For به عنوان هدرهای پروکسی برای درخواستهای ارسالشده از localhost و شبکه 192.168.1.0/24. هنگام تغییر مسیر، به 127.0.0.1 برای نحوه ریدایرکت اعتماد میشود. با فرض اینکه درخواستهای 127.0.0.1 و 192.168.1.109 و 93.184.216.34 هدرهای زیر را تنظیم کرده باشند: X-Forwarded-For: OwO X-Proxied-For: UwU X-Original-URL: https://reversely.proxied/jpegs خروجی حاصل به صورت زیر خواهد بود: Hosting "." on port 8000 without TLS and no authentication... Trusted proxies: Header Network X-Forwarded-For 127.0.0.1 X-Proxied-For 192.168.1.0/24 Ctrl-C to stop. [2020-02-17 17:48:41] 127.0.0.1:1392 for OwO was served directory listing for \\?\P:\Rust\http [2020-02-17 17:49:12] 192.168.1.109:1403 for UwU was served directory listing for \\?\P:\Rust\http [2020-02-17 17:49:29] 93.184.216.34:1397 was served directory listing for \\?\P:\Rust\http [2020-02-17 17:48:41] Redirecting 127.0.0.1:1393 for OwO to https://reversely.proxied/jpegs/ - found index file index.html
http --mime-type css:text/css;charset=utf-8 --mime-type :image/jpeg
-
مشابه مثال نخست، اما ارسال فایلهای .css با ویژگی charset=utf8 و رفتار با فایلهای بدون پسوند به عنوان JPEG. خروجی به این صورت خواهد بود: Hosting "." on port 8000 without TLS and no authentication... Serving files with no extension as image/jpeg. Serving files with .css extension as text/css; charset=utf-8. Ctrl-C to stop. [2020-07-20 12:32:24] 127.0.0.1:47916 was served file \\?\S:\Rust-target\doc\main.css as text/css; charset=utf-8 [2020-07-20 12:32:25] 127.0.0.1:2803 was served file \\?\P:\121D800E\http\DSC_6505 as image/jpeg
http --request-bandwidth 4K
-
مشابه مثال نخست، اما محدود کردن پهنای باند هر درخواست به 4096 بایت بر ثانیه. نمونه تغییر خروجی: Hosting "." on port 8000 without TLS and no authentication... Requests limited to 4096B/s. Ctrl-C to stop.
نویسندگان (AUTHORS)
نوشتهشده توسط thecoshman <rust@thecoshman.com>، nabijaczleweli <nabijaczleweli@nabijaczleweli.xyz>، pheki، Adrian Herath <adrianisuru@gmail.com>، cyqsimon، jim4067، Orhun Parmaksız <orhunparmaksiz@gmail.com>، Kian-Meng Ang <kianmeng@cpan.org>، Theodore Ni، و Thorbjørn Lindeijer <bjorn@lindeijer.nl>.
گزارش باگها (REPORTING BUGS)
همچنین ببینید (SEE ALSO)
| July 2026 | http developers |