入口。豫
yuyan · 762 行 · 37075 字节 · UTF-8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762
「:
一个面向本地开发的简易静态网页服务器。
用法:yybs_简易网页服务器 【端口】
端口默认为八千,服务目录为程序启动时的当前工作目录。
当前仅处理 GET 与 HEAD;每个连接处理一个请求后关闭。
文件正文按字节串读取和发送,可提供文本与二进制资源。
:」
寻观「标准库」之书。
寻观「标准库」之「语言核心」之「异常」之书。
寻观「标准库」之「数据结构」之「整数操作」之书。
寻观「标准库」之「数据结构」之「爻术」之书。
寻观「标准库」之「数据结构」之「字符串术」之书。
寻观「标准库」之「数据结构」之「多态列」之书。
寻观「标准库」之「数据结构」之「可选值」之书。
寻观「标准库」之「数据结构」之「特殊字符」之书。
寻观「标准库」之「数据结构」之「字节串」之书。
寻观「标准库」之「操作系统」之「命令行参数」之书。
寻观「标准库」之「操作系统」之「文件系统」之书。
寻观「标准库」之「操作系统」之「路径」之书。
寻观「标准库」之「操作系统」之「进程」之书。
寻观「标准库」之「输入输出」之「笔」之书。
寻观「标准库」之「网络」之「传输控制协议」之书。
「退出为整数」乃化「字符串」而化「整数」而「整数」也。
「退出为整数」者会「消息」而会「状态」而
(「标准错误打印行」于「消息」;
「退出」于「状态」;
「发生事故」于「消息」)
也。
「端口文字有效」乃化「字符串」而「爻」也。
「端口文字有效」者会「文字」而
「且」
于(「非」于(「字符串相等吗」于「文字」于『』))
于(「全部符合」授以「字符串」
于(会「字符」而「是子字符串吗」于「字符」于『0123456789』)
于(「获取字符」于「文字」))
也。
「取得端口」乃化(「列」于「字符串」)而「整数」也。
「取得端口」者会「参数们」而
虑「端口」者鉴「参数们」而
有「罄」则「八零零零」
或有((「列」【「端口文字」】))则
若「端口文字有效」于「端口文字」
则
「理解整数」于「端口文字」
否则
「退出为整数」于『端口必须是一至六五五三五之间的整数』于「二」
或有「其他」则
「退出为整数」于『用法:yybs_简易网页服务器 【端口】』于「二」
而
若「且」于(「大于」于「端口」于「零」)于(「小于」于「端口」于「六五五三六」)
则
「端口」
否则
「退出为整数」于『端口必须是一至六五五三五之间的整数』于「二」
也。
「截断于」乃化「字符串」而化「字符串」而「字符串」也。
「截断于」者会「分隔符」而会「内容」而
鉴「串从左搜索单个」于「分隔符」于「内容」而
有「可无」则「内容」
或有(「可有」于「序数」)则
「获取子字符串」于「零」于「序数」于「内容」
也。
「在闭区间」乃化「整数」而化「整数」而化「整数」而「爻」也。
「在闭区间」者会「值」而会「最小值」而会「最大值」而
「且」于(「非」于(「小于」于「值」于「最小值」))于(「非」于(「大于」于「值」于「最大值」))
也。
「十六进制数字值」乃化「整数」而「整数」也。
「十六进制数字值」者会「字节」而
若「在闭区间」于「字节」于「四八」于「五七」则
「减」于「字节」于「四八」
否则
若「在闭区间」于「字节」于「六五」于「七零」则
「加」于(「减」于「字节」于「六五」)于「一零」
否则
若「在闭区间」于「字节」于「九七」于「一零二」则
「加」于(「减」于「字节」于「九七」)于「一零」
否则
「减」于「零」于「一」
也。
「网址百分号解码」乃化「字符串」而(「整数」合「字符串」)也。
「网址百分号解码」者会「内容」而
虑「长度」者「字节长度」于「内容」而
递归虑「继续解码」其化「整数」而(「整数」合「字符串」)者会「位置」而
若「等于」于「位置」于「长度」
则
「零」与『』
否则
虑「当前字节」者「字符转整数」于「内容」于「位置」
而
若「等于」于「当前字节」于「三七」
则
(
若「非」于(「小于」于(「加」于「位置」于「二」)于「长度」)
则
「四零零」与『网址中有不完整的百分号编码』
否则
虑「高位」者
「十六进制数字值」于(「字符转整数」于「内容」于(「加」于「位置」于「一」))
而
虑「低位」者
「十六进制数字值」于(「字符转整数」于「内容」于(「加」于「位置」于「二」))
而
若「或者」
于(「小于」于「高位」于「零」)
于(「小于」于「低位」于「零」)
则
「四零零」与『网址中有无效的百分号编码』
否则
虑「解码字节」者
「加」于(「乘」于「高位」于「一六」)于「低位」
而
若「等于」于「解码字节」于「零」
则
「四零零」与『网址路径不可含有零字节』
否则
虑「余下结果」者
「继续解码」于(「加」于「位置」于「三」)
而
若「等于」于(「余下结果」中「零」)于「零」
则
「零」与((「字节转字符串」于「解码字节」)附(「余下结果」中「一」))
否则
「余下结果」
)
否则
虑「余下结果」者「继续解码」于(「加」于「位置」于「一」)
而
若「等于」于(「余下结果」中「零」)于「零」
则
「零」与((「字节转字符串」于「当前字节」)附(「余下结果」中「一」))
否则
「余下结果」
而
「继续解码」于「零」
也。
「是后续字节」乃化「整数」而「爻」也。
「是后续字节」者会「字节」而
「在闭区间」于「字节」于「一二八」于「一九一」
也。
「是合法八位统一码」乃化「字符串」而「爻」也。
「是合法八位统一码」者会「内容」而
虑「长度」者「字节长度」于「内容」而
递归虑「继续检查」其化「整数」而「爻」者会「位置」而
若「等于」于「位置」于「长度」则「阳」否则
虑「第一字节」者「字符转整数」于「内容」于「位置」
而
若「在闭区间」于「第一字节」于「一」于「一二七」
则
「继续检查」于(「加」于「位置」于「一」)
否则
(
若「在闭区间」于「第一字节」于「一九四」于「二二三」
则
(
若「大于」于(「加」于「位置」于「二」)于「长度」则
「阴」
否则
若「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「一」))
则
「继续检查」于(「加」于「位置」于「二」)
否则
「阴」
)
否则
(
若「或者」
于(「在闭区间」于「第一字节」于「二二五」于「二三六」)
于(「在闭区间」于「第一字节」于「二三八」于「二三九」)
则
(
若「大于」于(「加」于「位置」于「三」)于「长度」则
「阴」
否则
若「且」
于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「一」)))
于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」)))
则
「继续检查」于(「加」于「位置」于「三」)
否则
「阴」
)
否则
(
若「等于」于「第一字节」于「二二四」
则
(
若「大于」于(「加」于「位置」于「三」)于「长度」则
「阴」
否则
若「且」
于(「在闭区间」
于(「字符转整数」于「内容」于(「加」于「位置」于「一」))
于「一六零」于「一九一」)
于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」)))
则
「继续检查」于(「加」于「位置」于「三」)
否则
「阴」
)
否则
(
若「等于」于「第一字节」于「二三七」
则
(
若「大于」于(「加」于「位置」于「三」)于「长度」则
「阴」
否则
若「且」
于(「在闭区间」
于(「字符转整数」于「内容」于(「加」于「位置」于「一」))
于「一二八」于「一五九」)
于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」)))
则
「继续检查」于(「加」于「位置」于「三」)
否则
「阴」
)
否则
(
若「在闭区间」于「第一字节」于「二四一」于「二四三」
则
(
若「大于」于(「加」于「位置」于「四」)于「长度」则
「阴」
否则
若「且」
于(「且」
于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「一」)))
于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「二」))))
于(「是后续字节」于(「字符转整数」于「内容」于(「加」于「位置」于「三」)))
则
「继续检查」于(「加」于「位置」于「四」)
否则
「阴」
)
否则
(
若「等于」于「第一字节」于「二四零」
则
(
若「大于」
于(「加」于「位置」于「四」)于「长度」则
「阴」
否则
若「且」
于(「且」
于(「在闭区间」
于(「字符转整数」于「内容」于(「加」于「位置」于「一」))
于「一四四」于「一九一」)
于(「是后续字节」
于(「字符转整数」于「内容」于(「加」于「位置」于「二」))))
于(「是后续字节」
于(「字符转整数」于「内容」于(「加」于「位置」于「三」)))
则
「继续检查」于(「加」于「位置」于「四」)
否则
「阴」
)
否则
(
若「等于」于「第一字节」于「二四四」
则
(
若「大于」
于(「加」于「位置」于「四」)于「长度」则
「阴」
否则
若「且」
于(「且」
于(「在闭区间」
于(「字符转整数」于「内容」于(「加」于「位置」于「一」))
于「一二八」于「一四三」)
于(「是后续字节」
于(「字符转整数」于「内容」于(「加」于「位置」于「二」))))
于(「是后续字节」
于(「字符转整数」于「内容」于(「加」于「位置」于「三」)))
则
「继续检查」
于(「加」于「位置」于「四」)
否则
「阴」
)
否则
「阴」
)
)
)
)
)
)
)
而
「继续检查」于「零」
也。
「请求目标转相对路径」乃化「字符串」而「字符串」也。
「请求目标转相对路径」者会「目标」而
若「字符串相等吗」于「目标」于『/』
则
『』
否则
(若「串开头是它吗」于『/』于「目标」
则
「去除串开头」于『/』于「目标」
否则
「目标」)
也。
「请求目标安全」乃化「字符串」而「爻」也。
「请求目标安全」者会「目标」而
「且」
于(「且」于(「串开头是它吗」于『/』于「目标」)于(「非」于(「是子字符串吗」于『..』于「目标」)))
于(「非」于(「是子字符串吗」于『\』于「目标」))
也。
「转义网页文字」乃化「字符串」而「字符串」也。
「转义网页文字」者会「文字」而
「串查找替换」
于(「串查找替换」
于(「串查找替换」于(「串查找替换」于「文字」于『&』于『&』)于『<』于『<』)
于『>』于『>』)
于『"』于『"』
也。
「资源种类」乃化「字符串」而「字符串」也。
「资源种类」者会「文件名」而
若「串结尾是它吗」于『.html』于「文件名」则
『text/html; charset=utf-8』
否则
若「串结尾是它吗」于『.htm』于「文件名」则『text/html; charset=utf-8』否则
若「串结尾是它吗」于『.css』于「文件名」则『text/css; charset=utf-8』否则
若「串结尾是它吗」于『.js』于「文件名」则
『text/javascript; charset=utf-8』
否则
若「串结尾是它吗」于『.json』于「文件名」则
『application/json; charset=utf-8』
否则
若「串结尾是它吗」于『.svg』于「文件名」则
『image/svg+xml』
否则
若「串结尾是它吗」于『.xml』于「文件名」则
『application/xml; charset=utf-8』
否则
若「串结尾是它吗」于『.txt』于「文件名」则
『text/plain; charset=utf-8』
否则
若「串结尾是它吗」于『.md』于「文件名」则
『text/plain; charset=utf-8』
否则
『application/octet-stream』
也。
「写完整」乃化「传输连接」而化「字符串」而「有」也。
「写完整」者会「连接值」而
会「内容」而
递归虑「继续写」其化「整数」而「有」者会「位置」而
若「等于」于「位置」于(「字节长度」于「内容」)
则
「元」
否则
(
鉴「从字节序数写入」于「连接值」于「内容」于「位置」而
有「操作成功」于「写入数」则
若「大于」于「写入数」于「零」
则
「继续写」于(「加」于「位置」于「写入数」)
否则
「元」
或有「暂需等待」于「写入数」则(
鉴「等待可写」于「连接值」于「五零零零」而
有「操作成功」于「事件」则
若「等于」于「事件」于「零」则
「元」
否则
「继续写」于「位置」
或有「暂需等待」于「事件」则「元」
或有「连接已关闭」则「元」
或有「操作失败」于「状态」则「元」
)
或有「连接已关闭」则「元」
或有「操作失败」于「状态」则「元」
)
而
「继续写」于「零」
也。
「写完整字节串」乃化「传输连接」而化「字节串」而「有」也。
「写完整字节串」者会「连接值」而
会「内容」而
递归虑「继续写」其化「整数」而「有」者会「位置」而
若「等于」于「位置」于(「字节串长度」于「内容」)
则
「元」
否则
(
鉴「从字节序数写入字节串」于「连接值」于「内容」于「位置」而
有「操作成功」于「写入数」则
若「大于」于「写入数」于「零」
则
「继续写」于(「加」于「位置」于「写入数」)
否则
「元」
或有「暂需等待」于「写入数」则(
鉴「等待可写」于「连接值」于「五零零零」而
有「操作成功」于「事件」则
若「等于」于「事件」于「零」则
「元」
否则
「继续写」于「位置」
或有「暂需等待」于「事件」则「元」
或有「连接已关闭」则「元」
或有「操作失败」于「状态」则「元」
)
或有「连接已关闭」则「元」
或有「操作失败」于「状态」则「元」
)
而
「继续写」于「零」
也。
「编制响应头」乃
化「整数」而
化「字符串」而
化「字符串」而
化「整数」而
「字符串」
也。
「编制响应头」者会「状态码」而会「原因」而会「种类」而会「正文长度」而
『HTTP/1.1 』附(「整数表示」于「状态码」)附『 』附「原因」附「回车换行」
附『Server: yuyan-simple-http-server』附「回车换行」
附『Content-Type: 』附「种类」附「回车换行」
附『Content-Length: 』附(「整数表示」于「正文长度」)附「回车换行」
附『Connection: close』附「回车换行」
附「回车换行」
也。
「发送字节串响应」乃
化「传输连接」而
化「整数」而
化「字符串」而
化「字符串」而
化「字节串」而
化「爻」而
「有」
也。
「发送字节串响应」者会「连接值」而会「状态码」而会「原因」而会「种类」而会「正文」而会「仅标头」而
(「写完整」于「连接值」于(「编制响应头」于「状态码」于「原因」于「种类」于(「字节串长度」于「正文」));
若「仅标头」则「元」否则「写完整字节串」于「连接值」于「正文」)
也。
「发送响应」乃
化「传输连接」而
化「整数」而
化「字符串」而
化「字符串」而
化「字符串」而
化「爻」而
「有」
也。
「发送响应」者会「连接值」而会「状态码」而会「原因」而会「种类」而会「正文」而会「仅标头」而
「发送字节串响应」于「连接值」于「状态码」于「原因」于「种类」
于(「字符串转字节串」于「正文」)于「仅标头」
也。
「失败原因」乃化「整数」而「字符串」也。
「失败原因」者会「状态码」而
若「等于」于「状态码」于「四零八」则
『Request Timeout』
否则
若「等于」于「状态码」于「四一三」则『Content Too Large』否则
『Bad Request』
也。
「目录条目网页」乃
化「字符串」而
化「字符串」而
化(「列」于「字符串」)而
「字符串」
也。
「目录条目网页」者会「目录路径」而会「请求目标」而会「条目们」而
鉴「条目们」而
有「罄」则『』
或有(「缀」于「名称」于「余下」)则
若「或者」于(「字符串相等吗」于「名称」于『.』)于(「字符串相等吗」于「名称」于『..』)
则
「目录条目网页」于「目录路径」于「请求目标」于「余下」
否则
虑「文件路径」者「路径合并」于「目录路径」于「名称」
而
虑「是目录」者「路径是文件夹」于「文件路径」
而
虑「显示名」者
若「是目录」则「名称」附『/』否则「名称」
而
虑「目标前缀」者
若「串结尾是它吗」于『/』于「请求目标」则
「请求目标」
否则
「请求目标」附『/』
而
『<li><a href="』附(「转义网页文字」于「目标前缀」)附(「转义网页文字」于「显示名」)附『">』
附(「转义网页文字」于「显示名」)附『</a></li>』
附(「目录条目网页」于「目录路径」于「请求目标」于「余下」)
也。
「编制目录网页」乃化「字符串」而化「字符串」而「字符串」也。
「编制目录网页」者会「目录路径」而会「请求目标」而
虑「安全标题」者「转义网页文字」于「请求目标」而
『<!doctype html><html><head><meta charset="utf-8"><title>目录 』附「安全标题」
附『</title></head><body><h1>目录 』附「安全标题」附『</h1><ul>』
附(「目录条目网页」于「目录路径」于「请求目标」于(「读文件夹」于「目录路径」))
附『</ul></body></html>』
也。
「提供已解码路径」乃
化「传输连接」而
化「字符串」而
化「字符串」而
化「字符串」而
「有」
也。
「提供已解码路径」者会「连接值」而会「根目录」而会「方法」而会「请求目标」而
虑「仅标头」者「字符串相等吗」于「方法」于『HEAD』而
若「非」于(「请求目标安全」于「请求目标」)
则
「发送响应」于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于『无效请求目标』于「仅标头」
否则
虑「相对路径」者「请求目标转相对路径」于「请求目标」而
虑「实际路径」者「路径合并」于「根目录」于「相对路径」而
若「非」于(「路径存在」于「实际路径」)
则
「发送响应」
于「连接值」于「四零四」于『Not Found』于『text/plain; charset=utf-8』于『没有找到请求的资源』于「仅标头」
否则
(
若「路径是文件夹」于「实际路径」
则
虑「首页路径」者「路径合并」于「实际路径」于『index.html』
而
若「路径存在」于「首页路径」
则
虑「正文」者「读文件字节串」于「首页路径」而
「发送字节串响应」
于「连接值」
于「二零零」
于『OK』于『text/html; charset=utf-8』于「正文」于「仅标头」
否则
虑「正文」者
「编制目录网页」
于「实际路径」
于(「截断于」于『?』于「请求目标」)
而
「发送响应」
于「连接值」
于「二零零」
于『OK』于『text/html; charset=utf-8』于「正文」于「仅标头」
否则
(
若「路径是普通文件」于「实际路径」
则
虑「正文」者「读文件字节串」于「实际路径」而
「发送字节串响应」
于「连接值」
于「二零零」
于『OK』
于(「资源种类」于「实际路径」)于「正文」于「仅标头」
否则
「发送响应」
于「连接值」
于「四零四」
于『Not Found』
于『text/plain; charset=utf-8』
于『没有找到请求的资源』于「仅标头」
)
)
也。
「提供路径」乃
化「传输连接」而
化「字符串」而
化「字符串」而
化「字符串」而
「有」
也。
「提供路径」者会「连接值」而会「根目录」而会「方法」而会「原请求目标」而
虑「仅标头」者「字符串相等吗」于「方法」于『HEAD』而
虑「无查询」者「截断于」于『?』于「原请求目标」而
虑「无片段」者「截断于」于『#』于「无查询」而
虑「解码结果」者「网址百分号解码」于「无片段」而
若「非」于(「等于」于(「解码结果」中「零」)于「零」)
则
「发送响应」
于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』
于(「解码结果」中「一」)于「仅标头」
否则
虑「请求目标」者「解码结果」中「一」而
若「非」于(「是合法八位统一码」于「请求目标」)
则
「发送响应」
于「连接值」
于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于『网址路径不是合法的 UTF-8』于「仅标头」
否则
「提供已解码路径」于「连接值」于「根目录」于「方法」于「请求目标」
也。
「取请求行」乃化「字符串」而「字符串」也。
「取请求行」者会「请求」而
「截断于」于「回车换行」于「请求」
也。
「处理请求文字」乃化「传输连接」而化「字符串」而化「字符串」而「有」也。
「处理请求文字」者会「连接值」而会「根目录」而会「请求」而
鉴「元素分隔」授以「字符串」
于(会「字符」而「字符串相等吗」于「字符」于『 』)
于(「获取字符」于(「取请求行」于「请求」))而
有((「列」【「方法字符」,「目标字符」,「版本字符」】))则(
虑「方法」者「通字符转串」于「方法字符」而
虑「目标」者「通字符转串」于「目标字符」而
虑「版本」者「通字符转串」于「版本字符」而
若「非」于(「串开头是它吗」于『HTTP/』于「版本」)
则
「发送响应」于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于『无效协议版本』于「阴」
否则
(
若「或者」
于(「字符串相等吗」于「方法」于『GET』)
于(「字符串相等吗」于「方法」于『HEAD』)
则
虑「无」者「打印行」于(「方法」附『 』附「目标」)而
「提供路径」于「连接值」于「根目录」于「方法」于「目标」
否则
「发送响应」
于「连接值」
于「四零五」
于『Method Not Allowed』
于『text/plain; charset=utf-8』于『仅支持 GET 与 HEAD』于「阴」
)
)
或有「其他」则
「发送响应」于「连接值」于「四零零」于『Bad Request』于『text/plain; charset=utf-8』于『无效请求行』于「阴」
也。
「读取请求头」乃化「传输连接」而(「整数」合「字符串」)也。
「读取请求头」者会「连接值」而
递归虑「继续读」其化「字符串」而(「整数」合「字符串」)者会「已有」而
若「是子字符串吗」于(「回车换行」附「回车换行」)于「已有」
则
「零」与「已有」
否则
(
若「大于」于(「字节长度」于「已有」)于「六五五三六」
则
「四一三」与『请求头过大』
否则
(
鉴「读取」于「连接值」于「四零九六」而
有「操作成功」于「新内容」则
「继续读」于(「已有」附「新内容」)
或有「暂需等待」于「新内容」则(
鉴「等待可读」于「连接值」于「五零零零」而
有「操作成功」于「事件」则
若「等于」于「事件」于「零」
则
「四零八」与『读取请求超时』
否则
「继续读」于「已有」
或有「暂需等待」于「事件」则
「四零八」与『读取请求超时』
或有「连接已关闭」则
「四零零」与『连接提前关闭』
或有「操作失败」于「状态」则
「四零零」与(『等待请求失败:』附(「错误消息」于「状态」))
)
或有「连接已关闭」则
「四零零」与『连接提前关闭』
或有「操作失败」于「状态」则
「四零零」与(『读取请求失败:』附(「错误消息」于「状态」))
)
)
而
「继续读」于『』
也。
「处理连接」乃化「传输连接」而化「字符串」而「有」也。
「处理连接」者会「连接值」而会「根目录」而
鉴「读取请求头」于「连接值」而
有(「状态码」与「内容」)则
若「等于」于「状态码」于「零」
则
「处理请求文字」于「连接值」于「根目录」于「内容」
否则
「发送响应」
于「连接值」
于「状态码」
于(「失败原因」于「状态码」)
于『text/plain; charset=utf-8』于「内容」于「阴」
也。
「运行服务」乃化「传输连接」而化「字符串」而「有」也。
「运行服务」者会「监听连接」而
会「根目录」而
递归虑「继续服务」其化「有」而「有」者会「无」而
鉴「接受」于「监听连接」而
有「操作成功」于「连接值」则
(「处理连接」于「连接值」于「根目录」;
「关闭」于「连接值」;
「继续服务」于「元」)
或有「暂需等待」于「连接值」则(
鉴「等待可读」于「监听连接」于(「减」于「零」于「一」)而
有「操作成功」于「事件」则「继续服务」
于「元」
或有「暂需等待」于「事件」则「继续服务」于「元」
或有「连接已关闭」则
「标准错误打印行」于『监听连接已经关闭』
或有「操作失败」于「状态」则
「标准错误打印行」于(『等待连接失败:』附(「错误消息」于「状态」))
)
或有「连接已关闭」则
「标准错误打印行」于『监听连接已经关闭』
或有「操作失败」于「状态」则
「标准错误打印行」于(『接受连接失败:』附(「错误消息」于「状态」))
而
「继续服务」于「元」
也。
「:文言:终端预览,限于本机。汉语:保留原来的监听行为,新增 --本机 供管理终端限制监听地址。:」
虑「参数」者
「获取参数」于「元」而
虑「服务选项」者鉴「参数」而
有(「缀」于『--本机』于「余」)则
『127.0.0.1』与「余」
或有「其他」则
『0.0.0.0』与「其他」而
虑「端口」者「取得端口」于(「服务选项」中「一」)而
虑「根目录」者「获取当前路径」于「元」而
鉴「监听」于(「服务选项」中「零」)于「端口」于「一二八」而
有「操作成功」于「监听连接」则
(「打印行」于(『正在提供目录:』附「根目录」);
「打印行」于(『请访问:http://127.0.0.1:』附(「整数表示」于「端口」)附『/』);
「运行服务」于「监听连接」于「根目录」)
「:文言:不能听,则以败告。汉语:启动失败返回非零状态,使管理终端和自动化能够识别失败。:」
或有「暂需等待」于「监听连接」则
(「标准错误打印行」于『建立监听时意外要求等待』;
「退出」于「一」)
或有「连接已关闭」则
(「标准错误打印行」于『建立监听时连接已经关闭』;
「退出」于「一」)
或有「操作失败」于「状态」则
(「标准错误打印行」于(『监听失败:』附(「错误消息」于「状态」));
「退出」于「一」)。