{"id":32,"date":"2007-01-23T16:34:39","date_gmt":"2007-01-23T16:34:39","guid":{"rendered":"http:\/\/learn-house.idv.tw\/?p=32"},"modified":"2007-01-23T16:34:39","modified_gmt":"2007-01-23T16:34:39","slug":"%e7%b6%b2%e8%b7%af%e6%96%87%e4%bb%b6","status":"publish","type":"post","link":"https:\/\/learn-house.idv.tw\/?p=32","title":{"rendered":"\u7db2\u8def\u6587\u4ef6"},"content":{"rendered":"<p>\u7db2\u8def\u4e0a\u627e\u5230\u7684\u4e00\u4e9b\u8cc7\u8a0a<\/p>\n<p>\u6c92\u7d93\u904e\u6574\u7406\u7684\u8cbc\u4f86\u8cbc\u53bb\u800c\u5df2<\/p>\n<p>\u6240\u4ee5\u5c31\u8b93\u5b83\u6210\u70ba\u79d8\u5bc6\u6587\u7ae0\u5427&nbsp;<\/p>\n<p><font color=\"blue\">grep<\/font><br \/> <font color=\"green\">\u641c\u5c0b\u6a94\u6848\u4e2d\u7684\u5b57\u4e32<\/font><br \/> \u25ce <font color=\"blue\">grep &quot;\u5b57\u4e32&quot; *<\/font> \u641c\u5c0b\u6b64\u5c64\u76ee\u9304\u4e2d\uff0c\u5305\u542b\u300c<font color=\"blue\">\u5b57\u4e32<\/font>\u300d\u7684\u6240\u6709\u6a94\u6848\uff0c\u82e5\u300c<font color=\"blue\">\u5b57\u4e32<\/font>\u300d\u4e2d\u7684\u82f1\u6587\u5b57\u5143\u5927\u5c0f\u5beb\u4e0d\u540c\uff0c\u5c07\u88ab\u8996\u70ba<font color=\"#ff0000\">\u4e0d\u540c<\/font>\u5b57\u4e32<br \/> \u25ce <font color=\"blue\">grep -i &quot;\u5b57\u4e32&quot; *<\/font> \u641c\u5c0b\u6b64\u5c64\u76ee\u9304\u4e2d\uff0c\u5305\u542b\u300c<font color=\"blue\">\u5b57\u4e32<\/font>\u300d\u7684\u6240\u6709\u6a94\u6848\uff0c\u82e5\u300c<font color=\"blue\">\u5b57\u4e32<\/font>\u300d\u4e2d\u7684\u82f1\u6587\u5b57\u5143\u5927\u5c0f\u5beb\u4e0d\u540c\uff0c\u5c07\u88ab\u8996\u70ba<font color=\"#ff6600\">\u76f8\u540c<\/font>\u5b57\u4e32<br \/> \u25ce <font color=\"blue\">grep -r &quot;\u5b57\u4e32&quot; .\/<\/font> \u905e\u8ff4\u641c\u5c0b\u6b64\u5c64\u76ee\u9304\u5305\u542b\u5176\u4e0b\u6240\u6709\u5b50\u76ee\u9304\u4e2d\uff0c\u5305\u542b\u300c<font color=\"blue\">\u5b57\u4e32<\/font>\u300d\u7684\u6240\u6709\u6a94\u6848\uff0c\u82e5\u300c<font color=\"blue\">\u5b57\u4e32<\/font>\u300d\u4e2d\u7684\u82f1\u6587\u5b57\u5143\u5927\u5c0f\u5beb\u4e0d\u540c\uff0c\u5c07\u88ab\u8996\u70ba\u4e0d\u540c\u5b57\u4e32<\/p>\n<p><a href=\"http:\/\/homepage.ttu.edu.tw\/u9106240\/page_main\/linux.html\" target=\"_blank\">Linux\u6307\u5b9a\u5927\u5168&nbsp;<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<hr width=\"100%\" size=\"2\" \/>HTTP\u61c9\u7b54\u72c0\u614b<\/p>\n<p>&nbsp;<\/p>\n<p><font style=\"font-size: 13px\">  \u3000\u3000 7.1 \u72c0\u614b\u4ee3\u78bc\u6982\u8ff0 <\/p>\n<p>  \u3000\u3000 Web\u670d\u52d9\u5668\u97ff\u61c9\u700f\u89bd\u5668\u6216\u5176\u4ed6\u5ba2\u6236\u7a0b\u5e8f\u7684\u8acb\u6c42\u6642\uff0c\u5176\u61c9\u7b54\u4e00\u822c\u7531\u4ee5\u4e0b\u5e7e\u500b\u90e8\u5206\u7d44\u6210\uff1a\u4e00\u500b\u72c0\u614b\u884c\uff0c\u5e7e\u500b\u61c9\u7b54\u982d\uff0c\u4e00\u500b\u7a7a\u884c\uff0c\u5167\u5bb9\u6587\u6a94\u3002\u4e0b\u9762\u662f\u4e00\u500b\u6700\u7c21\u55ae\u7684\u61c9\u7b54\uff1a <br \/>  HTTP\/1.1 200 OK <br \/>  Content-Type: text\/plain <\/p>\n<p>  Hello World <\/p>\n<p> \u3000\u3000 \u72c0\u614b\u884c\u5305\u542bHTTP\u7248\u672c\u3001\u72c0\u614b\u4ee3\u78bc\u3001\u8207\u72c0\u614b\u4ee3\u78bc\u5c0d\u61c9\u7684\u7c21\u77ed\u8aaa\u660e\u4fe1\u606f\u3002\u5728\u5927\u591a\u6578\u60c5\u6cc1\u4e0b\uff0c\u9664\u4e86Content-Type\u4e4b\u5916\u7684\u6240\u6709\u61c9\u7b54\u982d\u90fd\u662f\u53ef\u9078\u7684\u3002\u4f46 Content-Type\u662f\u5fc5\u9700\u7684\uff0c\u5b83\u63cf\u8ff0\u7684\u662f\u5f8c\u9762\u6587\u6a94\u7684MIME\u985e\u578b\u3002\u96d6\u7136\u5927\u591a\u6578\u61c9\u7b54\u90fd\u5305\u542b\u4e00\u500b\u6587\u6a94\uff0c\u4f46\u4e5f\u6709\u4e00\u4e9b\u4e0d\u5305\u542b\uff0c\u4f8b\u5982\u5c0dHEAD\u8acb\u6c42\u7684\u61c9\u7b54\u6c38\u9060 \u4e0d\u6703\u9644\u5e36\u6587\u6a94\u3002\u6709\u8a31\u591a\u72c0\u614b\u4ee3\u78bc\u5be6\u969b\u4e0a\u7528\u4f86\u6a19\u8b58\u4e00\u6b21\u5931\u6557\u7684\u8acb\u6c42\uff0c\u9019\u4e9b\u61c9\u7b54\u4e5f\u4e0d\u5305\u542b\u6587\u6a94\uff08\u6216\u53ea\u5305\u542b\u4e00\u500b\u7c21\u77ed\u7684\u932f\u8aa4\u4fe1\u606f\u8aaa\u660e\uff09\u3002 <\/p>\n<p> \u3000\u3000 Servlet\u53ef\u4ee5\u5229\u7528\u72c0\u614b\u4ee3\u78bc\u4f86\u5be6\u73fe\u8a31\u591a\u529f\u80fd\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u628a\u7528\u6236\u91cd\u5b9a\u5411\u5230\u53e6\u4e00\u500b\u7db2\u7ad9\uff1b\u53ef\u4ee5\u6307\u793a\u51fa\u5f8c\u9762\u7684\u6587\u6a94\u662f\u5716\u7247\u3001PDF\u6587\u4ef6\u6216HTML\u6587\u4ef6\uff1b\u53ef\u4ee5\u544a\u8a34 \u7528\u6236\u5fc5\u9808\u63d0\u4f9b\u5bc6\u78bc\u624d\u80fd\u8a2a\u554f\u6587\u6a94\uff1b\u7b49\u7b49\u3002\u9019\u4e00\u90e8\u5206\u6211\u5011\u5c07\u5177\u9ad4\u8a0e\u8ad6\u5404\u7a2e\u72c0\u614b\u4ee3\u78bc\u7684\u542b\u7fa9\u4ee5\u53ca\u5229\u7528\u9019\u4e9b\u4ee3\u78bc\u53ef\u4ee5\u505a\u4e9b\u4ec0\u9ebc\u3002 <\/p>\n<p>  \u3000\u3000 7.2 \u8a2d\u7f6e\u72c0\u614b\u4ee3\u78bc <\/p>\n<p>  \u3000\u3000 \u5982\u524d\u6240\u8ff0\uff0cHTTP\u61c9\u7b54\u72c0\u614b\u884c\u5305\u542bHTTP\u7248\u672c\u3001\u72c0\u614b\u4ee3\u78bc\u548c\u5c0d\u61c9\u7684\u72c0\u614b\u4fe1\u606f\u3002\u7531\u65bc\u72c0\u614b\u4fe1\u606f\u76f4\u63a5\u548c\u72c0\u614b\u4ee3\u78bc\u76f8\u95dc\uff0c\u800cHTTP\u7248\u672c\u53c8\u7531\u670d\u52d9\u5668\u78ba\u5b9a\uff0c\u56e0\u6b64\u9700\u8981Servlet\u8a2d\u7f6e\u7684\u53ea\u6709\u4e00\u500b\u72c0\u614b\u4ee3\u78bc\u3002 <\/p>\n<p> \u3000\u3000 Servlet\u8a2d\u7f6e\u72c0\u614b\u4ee3\u78bc\u4e00\u822c\u4f7f\u7528HttpServletResponse\u7684setStatus\u65b9\u6cd5\u3002setStatus\u65b9\u6cd5\u7684\u53c3\u6578\u662f\u4e00\u500b\u6574\u6578\uff08\u5373\u72c0\u614b \u4ee3\u78bc\uff09\uff0c\u4e0d\u904e\u70ba\u4e86\u4f7f\u5f97\u4ee3\u78bc\u5177\u6709\u66f4\u597d\u7684\u53ef\u8b80\u6027\uff0c\u53ef\u4ee5\u7528HttpServletResponse\u4e2d\u5b9a\u7fa9\u7684\u5e38\u91cf\u4f86\u907f\u514d\u76f4\u63a5\u4f7f\u7528\u6574\u6578\u3002\u9019\u4e9b\u5e38\u91cf\u6839\u64daHTTP 1.1\u4e2d\u7684\u6a19\u6e96\u72c0\u614b\u4fe1\u606f\u547d\u540d\uff0c\u6240\u6709\u7684\u540d\u5b57\u90fd\u52a0\u4e0a\u4e86SC\u524d\u7db4\uff08Status Code\u7684\u7e2e\u5beb\uff09\u4e26\u5927\u5beb\uff0c\u540c\u6642\u628a\u7a7a\u683c\u8f49\u63db\u6210\u4e86\u4e0b\u5283\u7dda\u3002\u4e5f\u5c31\u662f\u8aaa\uff0c\u8207\u72c0\u614b\u4ee3\u78bc404\u5c0d\u61c9\u7684\u72c0\u614b\u4fe1\u606f\u662f&ldquo;Not Found&rdquo;\uff0c\u5247HttpServletResponse\u4e2d\u7684\u5c0d\u61c9\u5e38\u91cf\u540d\u5b57\u70baSC_NOT_FOUND\u3002\u4f46\u6709\u5169\u500b\u4f8b\u5916\uff1a\u548c\u72c0\u614b\u4ee3\u78bc302\u5c0d\u61c9\u7684\u5e38\u91cf\u6839\u64da HTTP 1.0\u547d\u540d\uff0c\u800c307\u6c92\u6709\u5c0d\u61c9\u7684\u5e38\u91cf\u3002 <\/p>\n<p> \u3000\u3000 \u8a2d\u7f6e\u72c0\u614b\u4ee3\u78bc\u4e26\u975e\u7e3d\u662f\u610f\u5473\u8457\u4e0d\u8981\u518d\u8fd4\u56de\u6587\u6a94\u3002\u4f8b\u5982\uff0c\u96d6\u7136\u5927\u591a\u6578\u670d\u52d9\u5668\u8fd4\u56de404\u61c9\u7b54\u6642\u6703\u8f38\u51fa\u7c21\u55ae\u7684&ldquo;File Not Found&rdquo;\u4fe1\u606f\uff0c\u4f46Servlet\u4e5f\u53ef\u4ee5\u5b9a\u5236\u9019\u500b\u61c9\u7b54\u3002\u4e0d\u904e\uff0c\u5b9a\u5236\u61c9\u7b54\u6642\u61c9\u7576\u5728\u901a\u904ePrintWriter\u767c\u9001\u4efb\u4f55\u5167\u5bb9\u4e4b\u524d\u5148\u8abf\u7528 response.setStatus\u3002 <\/p>\n<p> \u3000\u3000 \u96d6\u7136\u8a2d\u7f6e\u72c0\u614b\u4ee3\u78bc\u4e00\u822c\u4f7f\u7528\u7684\u662fresponse.setStauts(int)\u65b9\u6cd5\uff0c\u4f46\u70ba\u4e86\u7c21\u55ae\u8d77\u898b\uff0cHttpServletResponse\u70ba\u5169\u7a2e\u5e38\u898b \u7684\u60c5\u5f62\u63d0\u4f9b\u4e86\u5c08\u7528\u65b9\u6cd5\uff1asendError\u65b9\u6cd5\u751f\u6210\u4e00\u500b404\u61c9\u7b54\uff0c\u540c\u6642\u751f\u6210\u4e00\u500b\u7c21\u77ed\u7684HTML\u932f\u8aa4\u4fe1\u606f\u6587\u6a94\uff1bsendRedirect\u65b9\u6cd5\u751f\u6210\u4e00\u500b 302\u61c9\u7b54\uff0c\u540c\u6642\u5728Location\u982d\u4e2d\u6307\u793a\u65b0\u6587\u6a94\u7684URL\u3002 <\/p>\n<p>  \u3000\u3000 7.3 HTTP 1.1\u72c0\u614b\u4ee3\u78bc\u53ca\u5176\u542b\u7fa9 <\/p>\n<p>  \u3000\u3000 \u4e0b\u8868\u986f\u793a\u4e86\u5e38\u898b\u7684HTTP 1.1\u72c0\u614b\u4ee3\u78bc\u4ee5\u53ca\u5b83\u5011\u5c0d\u61c9\u7684\u72c0\u614b\u4fe1\u606f\u548c\u542b\u7fa9\u3002 <\/p>\n<p> \u3000\u3000 \u61c9\u7576\u8b39\u614e\u5730\u4f7f\u7528\u90a3\u4e9b\u53ea\u6709HTTP 1.1\u652f\u6301\u7684\u72c0\u614b\u4ee3\u78bc\uff0c\u56e0\u70ba\u8a31\u591a\u700f\u89bd\u5668\u9084\u53ea\u80fd\u5920\u652f\u6301HTTP 1.0\u3002\u5982\u679c\u4f60\u4f7f\u7528\u4e86HTTP 1.1\u7279\u6709\u7684\u72c0\u614b\u4ee3\u78bc\uff0c\u6700\u597d\u80fd\u5920\u6aa2\u67e5\u4e00\u4e0b\u8acb\u6c42\u7684HTTP\u7248\u672c\u865f\uff08\u901a\u904eHttpServletRequest\u7684getProtocol\u65b9\u6cd5\uff09\u3002 \u72c0\u614b\u4ee3\u78bc \u72c0\u614b\u4fe1\u606f \u542b\u7fa9 <br \/>  100 Continue \u521d\u59cb\u7684\u8acb\u6c42\u5df2\u7d93\u63a5\u53d7\uff0c\u5ba2\u6236\u61c9\u7576\u7e7c\u7e8c\u767c\u9001\u8acb\u6c42\u7684\u5176\u9918\u90e8\u5206\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  101 Switching Protocols \u670d\u52d9\u5668\u5c07\u9075\u5f9e\u5ba2\u6236\u7684\u8acb\u6c42\u8f49\u63db\u5230\u53e6\u5916\u4e00\u7a2e\u5354\u8b70\uff08HTTP 1.1\u65b0\uff09 <br \/>  200 OK \u4e00\u5207\u6b63\u5e38\uff0c\u5c0dGET\u548cPOST\u8acb\u6c42\u7684\u61c9\u7b54\u6587\u6a94\u8ddf\u5728\u5f8c\u9762\u3002\u5982\u679c\u4e0d\u7528setStatus\u8a2d\u7f6e\u72c0\u614b\u4ee3\u78bc\uff0cServlet\u9ed8\u8a8d\u4f7f\u7528202\u72c0\u614b\u4ee3\u78bc\u3002 <br \/>  201 Created \u670d\u52d9\u5668\u5df2\u7d93\u5275\u5efa\u4e86\u6587\u6a94\uff0cLocation\u982d\u7d66\u51fa\u4e86\u5b83\u7684URL\u3002 <br \/>  202 Accepted \u5df2\u7d93\u63a5\u53d7\u8acb\u6c42\uff0c\u4f46\u8655\u7406\u5c1a\u672a\u5b8c\u6210\u3002 <br \/>  203 Non-Authoritative Information \u6587\u6a94\u5df2\u7d93\u6b63\u5e38\u5730\u8fd4\u56de\uff0c\u4f46\u4e00\u4e9b\u61c9\u7b54\u982d\u53ef\u80fd\u4e0d\u6b63\u78ba\uff0c\u56e0\u70ba\u4f7f\u7528\u7684\u662f\u6587\u6a94\u7684\u62f7\u8c9d\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/>  204 No Content \u6c92\u6709\u65b0\u6587\u6a94\uff0c\u700f\u89bd\u5668\u61c9\u8a72\u7e7c\u7e8c\u986f\u793a\u539f\u4f86\u7684\u6587\u6a94\u3002\u5982\u679c\u7528\u6236\u5b9a\u671f\u5730\u5237\u65b0\u9801\u9762\uff0c\u800cServlet\u53ef\u4ee5\u78ba\u5b9a\u7528\u6236\u6587\u6a94\u8db3\u5920\u65b0\uff0c\u9019\u500b\u72c0\u614b\u4ee3\u78bc\u662f\u5f88\u6709\u7528\u7684\u3002 <br \/>  205 Reset Content \u6c92\u6709\u65b0\u7684\u5167\u5bb9\uff0c\u4f46\u700f\u89bd\u5668\u61c9\u8a72\u91cd\u7f6e\u5b83\u6240\u986f\u793a\u7684\u5167\u5bb9\u3002\u7528\u4f86\u5f37\u5236\u700f\u89bd\u5668\u6e05\u9664\u8868\u55ae\u8f38\u5165\u5167\u5bb9\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/>  206 Partial Content \u5ba2\u6236\u767c\u9001\u4e86\u4e00\u500b\u5e36\u6709Range\u982d\u7684GET\u8acb\u6c42\uff0c\u670d\u52d9\u5668\u5b8c\u6210\u4e86\u5b83\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/>  300 Multiple Choices \u5ba2\u6236\u8acb\u6c42\u7684\u6587\u6a94\u53ef\u4ee5\u5728\u591a\u500b\u4f4d\u7f6e\u627e\u5230\uff0c\u9019\u4e9b\u4f4d\u7f6e\u5df2\u7d93\u5728\u8fd4\u56de\u7684\u6587\u6a94\u5167\u5217\u51fa\u3002\u5982\u679c\u670d\u52d9\u5668\u8981\u63d0\u51fa\u512a\u5148\u9078\u64c7\uff0c\u5247\u61c9\u8a72\u5728Location\u61c9\u7b54\u982d\u6307\u660e\u3002 <br \/>  301 Moved Permanently \u5ba2\u6236\u8acb\u6c42\u7684\u6587\u6a94\u5728\u5176\u4ed6\u5730\u65b9\uff0c\u65b0\u7684URL\u5728Location\u982d\u4e2d\u7d66\u51fa\uff0c\u700f\u89bd\u5668\u61c9\u8a72\u81ea\u52d5\u5730\u8a2a\u554f\u65b0\u7684URL\u3002 <br \/> 302 Found \u985e\u4f3c\u65bc301\uff0c\u4f46\u65b0\u7684URL\u61c9\u8a72\u88ab\u8996\u70ba\u81e8\u6642\u6027\u7684\u66ff\u4ee3\uff0c\u800c\u4e0d\u662f\u6c38\u4e45\u6027\u7684\u3002\u6ce8\u610f\uff0c\u5728HTTP1.0\u4e2d\u5c0d\u61c9\u7684\u72c0\u614b\u4fe1\u606f\u662f&ldquo;Moved Temporatily&rdquo;\uff0c\u800cHttpServletResponse\u4e2d\u76f8\u61c9\u7684\u5e38\u91cf\u662fSC_MOVED_TEMPORARILY\uff0c\u800c\u4e0d\u662f SC_FOUND\u3002 <br \/> \u51fa\u73fe\u8a72\u72c0\u614b\u4ee3\u78bc\u6642\uff0c\u700f\u89bd\u5668\u80fd\u5920\u81ea\u52d5\u8a2a\u554f\u65b0\u7684URL\uff0c\u56e0\u6b64\u5b83\u662f\u4e00\u500b\u5f88\u6709\u7528\u7684\u72c0\u614b\u4ee3\u78bc\u3002\u70ba\u6b64\uff0cServlet\u63d0\u4f9b\u4e86\u4e00\u500b\u5c08\u7528\u7684\u65b9\u6cd5\uff0c\u5373 sendRedirect\u3002\u4f7f\u7528response.sendRedirect(url)\u6bd4\u4f7f\u7528response.setStatus (response.SC_MOVED_TEMPORARILY)\u548cresponse.setHeader(&quot;Location&quot;,url)\u66f4\u597d\u3002\u9019\u662f\u56e0 \u70ba\uff1a <\/p>\n<p>  \u9996\u5148\uff0c\u4ee3\u78bc\u66f4\u52a0\u7c21\u6f54\u3002 <br \/>  \u7b2c\u4e8c\uff0c\u4f7f\u7528sendRedirect\uff0cServlet\u6703\u81ea\u52d5\u69cb\u9020\u4e00\u500b\u5305\u542b\u65b0\u934a\u63a5\u7684\u9801\u9762\uff08\u7528\u65bc\u90a3\u4e9b\u4e0d\u80fd\u81ea\u52d5\u91cd\u5b9a\u5411\u7684\u8001\u5f0f\u700f\u89bd\u5668\uff09\u3002 <br \/>  \u6700\u5f8c\uff0csendRedirect\u80fd\u5920\u8655\u7406\u76f8\u5c0dURL\uff0c\u81ea\u52d5\u628a\u5b83\u5011\u8f49\u63db\u6210\u7d55\u5c0dURL\u3002 <br \/>  \u6ce8\u610f\u9019\u500b\u72c0\u614b\u4ee3\u78bc\u6709\u6642\u5019\u53ef\u4ee5\u548c301\u66ff\u63db\u4f7f\u7528\u3002\u4f8b\u5982\uff0c\u5982\u679c\u700f\u89bd\u5668\u932f\u8aa4\u5730\u8acb\u6c42<a href=\"http:\/\/host\/%7Euser%EF%BC%88%E7%BC%BA%E5%B0%91%E4%BA%86%E5%BE%8C%E9%9D%A2%E7%9A%84%E6%96%9C%E6%A7%93%EF%BC%89%EF%BC%8C%E6%9C%89%E7%9A%84%E6%9C%8D%E5%8B%99%E5%99%A8%E8%BF%94%E5%9B%9E301%EF%BC%8C%E6%9C%89%E7%9A%84%E5%89%87%E8%BF%94%E5%9B%9E302%E3%80%82\" target=\"_blank\">http:\/\/host\/~user\uff08\u7f3a\u5c11\u4e86\u5f8c\u9762\u7684\u659c\u69d3\uff09\uff0c\u6709\u7684\u670d\u52d9\u5668\u8fd4\u56de301\uff0c\u6709\u7684\u5247\u8fd4\u56de302\u3002 <\/a><\/p>\n<p>  \u56b4\u683c\u5730\u8aaa\uff0c\u6211\u5011\u53ea\u80fd\u5047\u5b9a\u53ea\u6709\u7576\u539f\u4f86\u7684\u8acb\u6c42\u662fGET\u6642\u700f\u89bd\u5668\u624d\u6703\u81ea\u52d5\u91cd\u5b9a\u5411\u3002\u8acb\u53c3\u898b307\u3002 <\/p>\n<p>  303 See Other \u985e\u4f3c\u65bc301\/302\uff0c\u4e0d\u540c\u4e4b\u8655\u5728\u65bc\uff0c\u5982\u679c\u539f\u4f86\u7684\u8acb\u6c42\u662fPOST\uff0cLocation\u982d\u6307\u5b9a\u7684\u91cd\u5b9a\u5411\u76ee\u6a19\u6587\u6a94\u61c9\u8a72\u901a\u904eGET\u63d0\u53d6\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/>  304 Not Modified \u5ba2\u6236\u7aef\u6709\u7de9\u885d\u7684\u6587\u6a94\u4e26\u767c\u51fa\u4e86\u4e00\u500b\u689d\u4ef6\u6027\u7684\u8acb\u6c42\uff08\u4e00\u822c\u662f\u63d0\u4f9bIf-Modified-Since\u982d\u8868\u793a\u5ba2\u6236\u53ea\u60f3\u6bd4\u6307\u5b9a\u65e5\u671f\u66f4\u65b0\u7684\u6587\u6a94\uff09\u3002\u670d\u52d9\u5668\u544a\u8a34\u5ba2\u6236\uff0c\u539f\u4f86\u7de9\u885d\u7684\u6587\u6a94\u9084\u53ef\u4ee5\u7e7c\u7e8c\u4f7f\u7528\u3002 <br \/>  305 Use Proxy \u5ba2\u6236\u8acb\u6c42\u7684\u6587\u6a94\u61c9\u8a72\u901a\u904eLocation\u982d\u6240\u6307\u660e\u7684\u4ee3\u7406\u670d\u52d9\u5668\u63d0\u53d6\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/> 307 Temporary Redirect \u548c302\uff08Found\uff09\u76f8\u540c\u3002\u8a31\u591a\u700f\u89bd\u5668\u6703\u932f\u8aa4\u5730\u97ff\u61c9302\u61c9\u7b54\u9032\u884c\u91cd\u5b9a\u5411\uff0c\u5373\u4f7f\u539f\u4f86\u7684\u8acb\u6c42\u662fPOST\uff0c\u5373\u4f7f\u5b83\u5be6\u969b\u4e0a\u53ea\u80fd\u5728POST\u8acb\u6c42\u7684\u61c9\u7b54\u662f303\u6642 \u624d\u80fd\u91cd\u5b9a\u5411\u3002\u7531\u65bc\u9019\u500b\u539f\u56e0\uff0cHTTP 1.1\u65b0\u589e\u4e86307\uff0c\u4ee5\u4fbf\u66f4\u52a0\u6e05\u9664\u5730\u5340\u5206\u5e7e\u500b\u72c0\u614b\u4ee3\u78bc\uff1a\u7576\u51fa\u73fe303\u61c9\u7b54\u6642\uff0c\u700f\u89bd\u5668\u53ef\u4ee5\u8ddf\u96a8\u91cd\u5b9a\u5411\u7684GET\u548cPOST\u8acb\u6c42\uff1b\u5982\u679c\u662f307\u61c9\u7b54\uff0c\u5247\u700f\u89bd\u5668\u53ea \u80fd\u8ddf\u96a8\u5c0dGET\u8acb\u6c42\u7684\u91cd\u5b9a\u5411\u3002 <br \/>  \u6ce8\u610f\uff0cHttpServletResponse\u4e2d\u6c92\u6709\u70ba\u8a72\u72c0\u614b\u4ee3\u78bc\u63d0\u4f9b\u76f8\u61c9\u7684\u5e38\u91cf\u3002\uff08HTTP 1.1\u65b0\uff09 <\/p>\n<p>  400 Bad Request \u8acb\u6c42\u51fa\u73fe\u8a9e\u6cd5\u932f\u8aa4\u3002 <br \/>  401 Unauthorized \u5ba2\u6236\u8a66\u5716\u672a\u7d93\u6388\u6b0a\u8a2a\u554f\u53d7\u5bc6\u78bc\u4fdd\u8b77\u7684\u9801\u9762\u3002\u61c9\u7b54\u4e2d\u6703\u5305\u542b\u4e00\u500bWWW-Authenticate\u982d\uff0c\u700f\u89bd\u5668\u64da\u6b64\u986f\u793a\u7528\u6236\u540d\u5b57\/\u5bc6\u78bc\u5c0d\u8a71\u6846\uff0c\u7136\u5f8c\u5728\u586b\u5beb\u5408\u9069\u7684Authorization\u982d\u5f8c\u518d\u6b21\u767c\u51fa\u8acb\u6c42\u3002 <br \/>  403 Forbidden \u8cc7\u6e90\u4e0d\u53ef\u7528\u3002\u670d\u52d9\u5668\u7406\u89e3\u5ba2\u6236\u7684\u8acb\u6c42\uff0c\u4f46\u62d2\u7d55\u8655\u7406\u5b83\u3002\u901a\u5e38\u7531\u65bc\u670d\u52d9\u5668\u4e0a\u6587\u4ef6\u6216\u76ee\u9304\u7684\u6b0a\u9650\u8a2d\u7f6e\u5c0e\u81f4\u3002 <br \/>  404 Not Found \u7121\u6cd5\u627e\u5230\u6307\u5b9a\u4f4d\u7f6e\u7684\u8cc7\u6e90\u3002\u9019\u4e5f\u662f\u4e00\u500b\u5e38\u7528\u7684\u61c9\u7b54\uff0cHttpServletResponse\u5c08\u9580\u63d0\u4f9b\u4e86\u76f8\u61c9\u7684\u65b9\u6cd5\uff1asendError(message)\u3002 <br \/>  405 Method Not Allowed \u8acb\u6c42\u65b9\u6cd5\uff08GET\u3001POST\u3001HEAD\u3001DELETE\u3001PUT\u3001TRACE\u7b49\uff09\u5c0d\u6307\u5b9a\u7684\u8cc7\u6e90\u4e0d\u9069\u7528\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  406 Not Acceptable \u6307\u5b9a\u7684\u8cc7\u6e90\u5df2\u7d93\u627e\u5230\uff0c\u4f46\u5b83\u7684MIME\u985e\u578b\u548c\u5ba2\u6236\u5728Accpet\u982d\u4e2d\u6240\u6307\u5b9a\u7684\u4e0d\u517c\u5bb9\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/>  407 Proxy Authentication Required \u985e\u4f3c\u65bc401\uff0c\u8868\u793a\u5ba2\u6236\u5fc5\u9808\u5148\u7d93\u904e\u4ee3\u7406\u670d\u52d9\u5668\u7684\u6388\u6b0a\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  408 Request Timeout \u5728\u670d\u52d9\u5668\u8a31\u53ef\u7684\u7b49\u5f85\u6642\u9593\u5167\uff0c\u5ba2\u6236\u4e00\u76f4\u6c92\u6709\u767c\u51fa\u4efb\u4f55\u8acb\u6c42\u3002\u5ba2\u6236\u53ef\u4ee5\u5728\u4ee5\u5f8c\u91cd\u8907\u540c\u4e00\u8acb\u6c42\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  409 Conflict \u901a\u5e38\u548cPUT\u8acb\u6c42\u6709\u95dc\u3002\u7531\u65bc\u8acb\u6c42\u548c\u8cc7\u6e90\u7684\u7576\u524d\u72c0\u614b\u76f8\u885d\u7a81\uff0c\u56e0\u6b64\u8acb\u6c42\u4e0d\u80fd\u6210\u529f\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  410 Gone \u6240\u8acb\u6c42\u7684\u6587\u6a94\u5df2\u7d93\u4e0d\u518d\u53ef\u7528\uff0c\u800c\u4e14\u670d\u52d9\u5668\u4e0d\u77e5\u9053\u61c9\u8a72\u91cd\u5b9a\u5411\u5230\u54ea\u4e00\u500b\u5730\u5740\u3002\u5b83\u548c404\u7684\u4e0d\u540c\u5728\u65bc\uff0c\u8fd4\u56de407\u8868\u793a\u6587\u6a94\u6c38\u4e45\u5730\u96e2\u958b\u4e86\u6307\u5b9a\u7684\u4f4d\u7f6e\uff0c\u800c404\u8868\u793a\u7531\u65bc\u672a\u77e5\u7684\u539f\u56e0\u6587\u6a94\u4e0d\u53ef\u7528\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  411 Length Required \u670d\u52d9\u5668\u4e0d\u80fd\u8655\u7406\u8acb\u6c42\uff0c\u9664\u975e\u5ba2\u6236\u767c\u9001\u4e00\u500bContent-Length\u982d\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  412 Precondition Failed \u8acb\u6c42\u982d\u4e2d\u6307\u5b9a\u7684\u4e00\u4e9b\u524d\u63d0\u689d\u4ef6\u5931\u6557\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/>  413 Request Entity Too Large \u76ee\u6a19\u6587\u6a94\u7684\u5927\u5c0f\u8d85\u904e\u670d\u52d9\u5668\u7576\u524d\u9858\u610f\u8655\u7406\u7684\u5927\u5c0f\u3002\u5982\u679c\u670d\u52d9\u5668\u8a8d\u70ba\u81ea\u5df1\u80fd\u5920\u7a0d\u5f8c\u518d\u8655\u7406\u8a72\u8acb\u6c42\uff0c\u5247\u61c9\u8a72\u63d0\u4f9b\u4e00\u500bRetry-After\u982d\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/>  414 Request URI Too Long URI\u592a\u9577\uff08HTTP 1.1\u65b0\uff09\u3002 <br \/>  416 Requested Range Not Satisfiable \u670d\u52d9\u5668\u4e0d\u80fd\u6eff\u8db3\u5ba2\u6236\u5728\u8acb\u6c42\u4e2d\u6307\u5b9a\u7684Range\u982d\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  500 Internal Server Error \u670d\u52d9\u5668\u9047\u5230\u4e86\u610f\u6599\u4e0d\u5230\u7684\u60c5\u6cc1\uff0c\u4e0d\u80fd\u5b8c\u6210\u5ba2\u6236\u7684\u8acb\u6c42\u3002 <br \/>  501 Not Implemented \u670d\u52d9\u5668\u4e0d\u652f\u6301\u5be6\u73fe\u8acb\u6c42\u6240\u9700\u8981\u7684\u529f\u80fd\u3002\u4f8b\u5982\uff0c\u5ba2\u6236\u767c\u51fa\u4e86\u4e00\u500b\u670d\u52d9\u5668\u4e0d\u652f\u6301\u7684PUT\u8acb\u6c42\u3002 <br \/>  502 Bad Gateway \u670d\u52d9\u5668\u4f5c\u70ba\u7db2\u95dc\u6216\u8005\u4ee3\u7406\u6642\uff0c\u70ba\u4e86\u5b8c\u6210\u8acb\u6c42\u8a2a\u554f\u4e0b\u4e00\u500b\u670d\u52d9\u5668\uff0c\u4f46\u8a72\u670d\u52d9\u5668\u8fd4\u56de\u4e86\u975e\u6cd5\u7684\u61c9\u7b54\u3002 <br \/>  503 Service Unavailable \u670d\u52d9\u5668\u7531\u65bc\u7dad\u8b77\u6216\u8005\u8ca0\u8f09\u904e\u91cd\u672a\u80fd\u61c9\u7b54\u3002\u4f8b\u5982\uff0cServlet\u53ef\u80fd\u5728\u6578\u64da\u5eab\u9023\u63a5\u6c60\u5df2\u6eff\u7684\u60c5\u6cc1\u4e0b\u8fd4\u56de503\u3002\u670d\u52d9\u5668\u8fd4\u56de503\u6642\u53ef\u4ee5\u63d0\u4f9b\u4e00\u500bRetry-After\u982d\u3002 <br \/>  504 Gateway Timeout \u7531\u4f5c\u70ba\u4ee3\u7406\u6216\u7db2\u95dc\u7684\u670d\u52d9\u5668\u4f7f\u7528\uff0c\u8868\u793a\u4e0d\u80fd\u53ca\u6642\u5730\u5f9e\u9060\u7a0b\u670d\u52d9\u5668\u7372\u5f97\u61c9\u7b54\u3002\uff08HTTP 1.1\u65b0\uff09 <br \/>  505 HTTP Version Not Supported \u670d\u52d9\u5668\u4e0d\u652f\u6301\u8acb\u6c42\u4e2d\u6240\u6307\u660e\u7684HTTP\u7248\u672c\u3002\uff08HTTP 1.1\u65b0\uff09 <\/p>\n<p>  \u3000\u3000 7.4 \u5be6\u4f8b\uff1a\u8a2a\u554f\u591a\u500b\u641c\u7d22\u5f15\u64ce <\/p>\n<p>  \u3000\u3000 \u4e0b\u9762\u9019\u500b\u4f8b\u5b50\u7528\u5230\u4e86\u9664200\u4e4b\u5916\u7684\u53e6\u5916\u5169\u500b\u5e38\u898b\u72c0\u614b\u4ee3\u78bc\uff1a302\u548c404\u3002302\u901a\u904esendRedirect\u65b9\u6cd5\u8a2d\u7f6e\uff0c404\u901a\u904esendError\u65b9\u6cd5\u8a2d\u7f6e\u3002 <\/p>\n<p> \u3000\u3000 \u5728\u9019\u500b\u4f8b\u5b50\u4e2d\uff0c\u9996\u5148\u51fa\u73fe\u7684HTML\u8868\u55ae\u7528\u4f86\u9078\u64c7\u641c\u7d22\u5f15\u64ce\u3001\u641c\u7d22\u5b57\u7b26\u4e32\u3001\u6bcf\u9801\u986f\u793a\u7684\u641c\u7d22\u7d50\u679c\u6578\u91cf\u3002\u8868\u55ae\u63d0\u4ea4\u5f8c\uff0cServlet\u63d0\u53d6\u9019\u4e09\u500b\u8b8a\u91cf\uff0c\u6309\u7167\u6240\u9078\u64c7\u7684 \u641c\u7d22\u5f15\u64ce\u7684\u8981\u6c42\u69cb\u9020\u51fa\u5305\u542b\u9019\u4e9b\u8b8a\u91cf\u7684URL\uff0c\u7136\u5f8c\u628a\u7528\u6236\u91cd\u5b9a\u5411\u5230\u9019\u500bURL\u3002\u5982\u679c\u7528\u6236\u4e0d\u80fd\u6b63\u78ba\u5730\u9078\u64c7\u641c\u7d22\u5f15\u64ce\uff0c\u6216\u8005\u5229\u7528\u5176\u4ed6\u8868\u55ae\u767c\u9001\u4e86\u4e00\u500b\u4e0d\u8a8d\u8b58\u7684\u641c\u7d22\u5f15 \u64ce\u540d\u5b57\uff0c\u5247\u8fd4\u56de\u4e00\u500b\u63d0\u793a\u641c\u7d22\u5f15\u64ce\u627e\u4e0d\u5230\u7684404\u9801\u9762\u3002 <\/p>\n<p>  \u3000\u3000 SearchEngines.java <\/p>\n<p>  \u3000\u3000 \u6ce8\u610f\uff1a\u9019\u500bServlet\u8981\u7528\u5230\u5f8c\u9762\u7d66\u51fa\u7684SearchSpec\u985e\uff0cSearchSpec\u7684\u529f\u80fd\u662f\u69cb\u9020\u9069\u5408\u4e0d\u540c\u641c\u7d22\u5f15\u64ce\u7684URL\u3002 <br \/>  package hall; <\/p>\n<p>  import java.io.*; <br \/>  import javax.servlet.*; <br \/>  import javax.servlet.http.*; <br \/>  import java.net.*; <\/p>\n<p>  public class SearchEngines extends HttpServlet { <br \/>   public void doGet(HttpServletRequest request, <br \/>   HttpServletResponse response) <br \/>   throws ServletException, IOException { <br \/>   \/\/ getParameter\u81ea\u52d5\u89e3\u78bcURL\u7de8\u78bc\u7684\u67e5\u8a62\u5b57\u7b26\u4e32\u3002\u7531\u65bc\u6211\u5011 <br \/>   \/\/ \u8981\u628a\u67e5\u8a62\u5b57\u7b26\u4e32\u767c\u9001\u7d66\u53e6\u4e00\u500b\u670d\u52d9\u5668\uff0c\u56e0\u6b64\u518d\u6b21\u4f7f\u7528 <br \/>   \/\/ URLEncoder\u9032\u884cURL\u7de8\u78bc <br \/>   String searchString = <br \/>   URLEncoder.encode(request.getParameter(&quot;searchString&quot;)); <br \/>   String numResults = <br \/>   request.getParameter(&quot;numResults&quot;); <br \/>   String searchEngine = <br \/>   request.getParameter(&quot;searchEngine&quot;); <br \/>   SearchSpec[] commonSpecs = SearchSpec.getCommonSpecs(); <br \/>   for(int i=0; i\uff1ccommonSpecs.length; i++) { <br \/>   SearchSpec searchSpec = commonSpecs[i]; <br \/>   if (searchSpec.getName().equals(searchEngine)) { <br \/>   String url = <br \/>   response.encodeURL(searchSpec.makeURL(searchString, <br \/>   numResults)); <br \/>   response.sendRedirect(url); <br \/>   return; <br \/>   } <br \/>   } <br \/>   response.sendError(response.SC_NOT_FOUND, <br \/>   &quot;No recognized search engine specified.&quot;); <br \/>   } <\/p>\n<p>   public void doPost(HttpServletRequest request, <br \/>   HttpServletResponse response) <br \/>   throws ServletException, IOException { <br \/>   doGet(request, response); <br \/>   } <br \/>  } <\/p>\n<p>  \u3000\u3000 SearchSpec.java <br \/>  package hall; <\/p>\n<p>  class SearchSpec { <br \/>   private String name, baseURL, numResultsSuffix; <\/p>\n<p>   private static SearchSpec[] commonSpecs = <br \/>   { new SearchSpec(&quot;google&quot;, <br \/>   &quot;<a href=\"http:\/\/www.google.com\/search?q=\" target=\"_blank\">http:\/\/www.google.com\/search?q=&quot;, <\/a><br \/>   &quot;&amp;num=&quot;), <br \/>   new SearchSpec(&quot;infoseek&quot;, <br \/>   &quot;<a href=\"http:\/\/infoseek.go.com\/Titles?qt=\" target=\"_blank\">http:\/\/infoseek.go.com\/Titles?qt=&quot;, <\/a><br \/>   &quot;&amp;nh=&quot;), <br \/>   new SearchSpec(&quot;lycos&quot;, <br \/>   &quot;<a href=\"http:\/\/lycospro.lycos.com\/cgi-bin\/pursuit?query=\" target=\"_blank\">http:\/\/lycospro.lycos.com\/cgi-bin\/pursuit?query=&quot;, <\/a><br \/>   &quot;&amp;maxhits=&quot;), <br \/>   new SearchSpec(&quot;hotbot&quot;, <br \/>   &quot;<a href=\"http:\/\/www.hotbot.com\/?MT=\" target=\"_blank\">http:\/\/www.hotbot.com\/?MT=&quot;, <\/a><br \/>   &quot;&amp;DC=&quot;) <br \/>   }; <\/p>\n<p>   public SearchSpec(String name, <br \/>   String baseURL, <br \/>   String numResultsSuffix) { <br \/>   this.name = name; <br \/>   this.baseURL = baseURL; <br \/>   this.numResultsSuffix = numResultsSuffix; <br \/>   } <\/p>\n<p>   public String makeURL(String searchString, String numResults) { <br \/>   return(baseURL + searchString + numResultsSuffix + numResults); <br \/>   } <\/p>\n<p>   public String getName() { <br \/>   return(name); <br \/>   } <\/p>\n<p>   public static SearchSpec[] getCommonSpecs() { <br \/>   return(commonSpecs); <br \/>   } <br \/>  } <\/p>\n<p>  \u3000\u3000 SearchEngines.html <\/p>\n<p>  \u3000\u3000 \u4e0b\u9762\u662f\u8abf\u7528\u4e0a\u8ff0Servlet\u7684HTML\u8868\u55ae\u3002 <br \/>  \uff1c!DOCTYPE HTML PUBLIC &quot;-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN&quot;\uff1e <br \/>  \uff1cHTML\uff1e <br \/>  \uff1cHEAD\uff1e <br \/>   \uff1cTITLE\uff1e\u8a2a\u554f\u591a\u500b\u641c\u7d22\u5f15\u64ce\uff1c\/TITLE\uff1e <br \/>  \uff1c\/HEAD\uff1e <\/p>\n<p>  \uff1cBODY BGCOLOR=&quot;#FDF5E6&quot;\uff1e <\/p>\n<p>  \uff1cFORM ACTION=&quot;\/servlet\/hall.SearchEngines&quot;\uff1e <br \/>   \uff1cCENTER\uff1e <br \/>   \u641c\u7d22\u95dc\u9375\u5b57: <br \/>   \uff1cINPUT TYPE=&quot;TEXT&quot; NAME=&quot;searchString&quot;\uff1e\uff1cBR\uff1e <br \/>   \u6bcf\u9801\u986f\u793a\u5e7e\u500b\u67e5\u8a62\u7d50\u679c: <br \/>   \uff1cINPUT TYPE=&quot;TEXT&quot; NAME=&quot;numResults&quot; <br \/>   VALUE=10 SIZE=3\uff1e\uff1cBR\uff1e <br \/>   \uff1cINPUT TYPE=&quot;RADIO&quot; NAME=&quot;searchEngine&quot; <br \/>   VALUE=&quot;google&quot;\uff1e <br \/>   Google | <br \/>   \uff1cINPUT TYPE=&quot;RADIO&quot; NAME=&quot;searchEngine&quot; <br \/>   VALUE=&quot;infoseek&quot;\uff1e <br \/>   Infoseek | <br \/>   \uff1cINPUT TYPE=&quot;RADIO&quot; NAME=&quot;searchEngine&quot; <br \/>   VALUE=&quot;lycos&quot;\uff1e <br \/>   Lycos | <br \/>   \uff1cINPUT TYPE=&quot;RADIO&quot; NAME=&quot;searchEngine&quot; <br \/>   VALUE=&quot;hotbot&quot;\uff1e <br \/>   HotBot <br \/>   \uff1cBR\uff1e <br \/>   \uff1cINPUT TYPE=&quot;SUBMIT&quot; VALUE=&quot;Search&quot;\uff1e <br \/>   \uff1c\/CENTER\uff1e <br \/>  \uff1c\/FORM\uff1e <\/p>\n<p>  \uff1c\/BODY\uff1e <br \/>  \uff1c\/HTML\uff1e&nbsp; <\/font><\/p>\n<hr width=\"100%\" size=\"2\" \/>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7db2\u8def\u4e0a\u627e\u5230\u7684\u4e00\u4e9b\u8cc7\u8a0a \u6c92\u7d93\u904e\u6574\u7406\u7684\u8cbc\u4f86\u8cbc\u53bb\u800c\u5df2 \u6240\u4ee5\u5c31\u8b93\u5b83\u6210\u70ba\u79d8\u5bc6\u6587\u7ae0\u5427&nbsp; grep \u641c\u5c0b\u6a94\u6848\u4e2d\u7684\u5b57<span class=\"post-excerpt-end\">&hellip;<\/span><\/p>\n<p class=\"more-link\"><a href=\"https:\/\/learn-house.idv.tw\/?p=32\" class=\"themebutton\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=32"}],"version-history":[{"count":0,"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=\/wp\/v2\/posts\/32\/revisions"}],"wp:attachment":[{"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/learn-house.idv.tw\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}