{"rsdb":{"rid":"239369","subhead":"","postdate":"0","aid":"164986","fid":"106","uid":"1","topic":"1","content":"
\u3000\u3000<\/p> \n
\u6700\u8fd1\u5728\u5b66\u4e60\u7f51\u7edc\u539f\u7406\uff0c\u7a81\u7136\u840c\u53d1\u51fa\u81ea\u5df1\u5b9e\u73b0\u4e00\u4e2a\u7f51\u7edc\u670d\u52a1\u5668\u7684\u60f3\u6cd5\uff0c\u5e76\u4e14\u7531\u4e8e\u7b2c\u4e09\u4ee3\u5c0f\u767d\u673a\u5668\u4eba\u7684\u5f00\u53d1\u9700\u8981\uff0c\u6211\u628a\u4e4b\u524d\u4f7f\u7528python<\/a>\u3001PHP\u5199\u7684\u90a3\u90e8\u5206\u4ee3\u7801\u90fd\u8fc1\u79fb\u5230\u4e86C#\uff08\u522b\u95ee\u6211\u4e3a\u4ec0\u4e48\u8fd9\u4e48\u559c\u6b22C#\uff09\uff0c\u4e4b\u524d\u4f7f\u7528PHP\u5c31\u662f\u7528\u6765\u5904\u7406\u7f51\u7edc\u8bf7\u6c42\u7684\uff0c\u73b0\u5728\u8fc1\u79fb\u5230C#\u4e86\uff0c\u800cLinux\u7cfb\u7edf\u4e0a\u5e76\u6ca1\u6709IIS\u670d\u52a1\u5668\uff0c\u81ea\u7136\u4e0d\u80fd\u4f7f\u7528ASP.Net\uff0c\u6240\u4ee5\u8fd9\u4e2a\u65f6\u5019\u81ea\u5df1\u5b9e\u73b0\u4e00\u4e2a\u529f\u80fd\u7b80\u5355\u7684\u7f51\u7edc\u670d\u52a1\u5668\u5c31\u6070\u5230\u597d\u5904\u5730\u89e3\u51b3\u8fd9\u4e9b\u95ee\u9898\u4e86\u3002<\/p> \n Web Server\u5728\u4e00\u4e2aB\/S\u67b6\u6784\u7cfb\u7edf\u4e2d\u8d77\u5230\u7684\u4f5c\u7528\u4e0d\u4ec5\u591a\u800c\u4e14\u76f8\u5f53\u91cd\u8981\uff0cWeb\u5f00\u53d1\u8005\u5927\u90e8\u5206\u65f6\u5019\u5e76\u4e0d\u9700\u8981\u4e86\u89e3\u5b83\u7684\u8be6\u7ec6\u5de5\u4f5c\u673a\u5236\u3002\u867d\u7136\u4e0d\u540c\u7684Web Server\u53ef\u80fd\u529f\u80fd\u5e76\u4e0d\u5b8c\u5168\u4e00\u6837\uff0c\u4f46\u662f\u4ee5\u4e0b\u4e09\u4e2a\u529f\u80fd\u51e0\u4e4e\u662f\u6240\u6709Web Server\u5fc5\u987b\u5177\u5907\u7684\uff1a<\/p> \n \u4e0b\u56fe\u663e\u793aWeb Server\u5728\u6574\u4e2aWeb\u67b6\u6784\u7cfb\u7edf\u4e2d\u6240\u5904\u7684\u91cd\u8981\u4f4d\u7f6e\uff1a<\/strong><\/p> \n <\/p> \n \u5982\u4e0a\u56fe\uff0cWeb Server\u8d77\u5230\u4e86\u4e00\u4e2a\u201c\u627f\u4e0a\u542f\u4e0b\u201d\u7684\u4f5c\u7528\uff08\u867d\u7136\u5e76\u6ca1\u6709\u201c\u4e0a\u4e0b\u201d\u4e4b\u5206\uff09\uff0c\u5b83\u8d1f\u8d23\u8fde\u63a5\u7528\u6237\u548cWeb\u7ad9\u70b9\u3002<\/p> \n \u6bcf\u4e2a\u7f51\u7ad9\u5c31\u50cf\u4e00\u4e2a\u4e2a\u201c\u63d2\u4ef6\u201d\uff0c\u53ea\u8981\u7f51\u7ad9\u5f00\u53d1\u8fc7\u7a0b\u4e2d\u9075\u5faa\u4e86Web Server\u63d0\u51fa\u7684\u89c4\u5219\uff0c\u90a3\u4e48\u8be5\u7f51\u7ad9\u5c31\u53ef\u4ee5\u201c\u63d2\u201d\u5728Web Server\u4e0a\uff0c\u6211\u4eec\u4fbf\u53ef\u4ee5\u901a\u8fc7\u6d4f\u89c8\u5668\u8bbf\u95ee\u7f51\u7ad9\u3002<\/p> \n \u6d4f\u89c8\u5668\u60f3\u8981\u62ff\u5230\u54ea\u4e2a\u6587\u4ef6\uff08html\u3001css\u3001js\u3001image\uff09\u5c31\u548c\u670d\u52a1\u5668\u53d1\u8bf7\u6c42\u4fe1\u606f\u8bf4\u6211\u8981\u8fd9\u4e2a\u6587\u4ef6\uff0c\u7136\u540e\u670d\u52a1\u5668\u68c0\u67e5\u8bf7\u6c42\u5408\u4e0d\u5408\u6cd5\uff0c\u5982\u679c\u5408\u6cd5\u5c31\u628a\u6587\u4ef6\u6570\u636e\u4f20\u56de\u7ed9\u6d4f\u89c8\u5668\uff0c\u8fd9\u6837\u6d4f\u89c8\u5668\u5c31\u53ef\u4ee5\u628a\u7f51\u7ad9\u663e\u793a\u51fa\u6765\u4e86\u3002\uff08\u4e00\u4e2a\u7f51\u7ad9\u4e00\u822c\u4f1a\u5305\u542bn\u591a\u4e2a\u6587\u4ef6\uff09<\/p> \n \u5728C#\u4e2d\u6709\u4e24\u79cd\u65b9\u6cd5\u53ef\u4ee5\u7b80\u5355\u5b9e\u73b0Web\u670d\u52a1\u5668\uff0c\u5206\u522b\u662f\u76f4\u63a5\u4f7f\u7528Socket\u548c\u4f7f\u7528\u5c01\u88c5\u597d\u7684HttpListener\u3002<\/p> \n \u56e0\u4e3a\u540e\u8005\u6bd4\u8f83\u65b9\u4fbf\u4e00\u4e9b\uff0c\u6240\u4ee5\u6211\u9009\u62e9\u4f7f\u7528\u540e\u8005\u3002<\/p> \n \u8fd9\u662f\u6700\u7b80\u5355\u7684\u5b9e\u73b0\u4e00\u4e2a\u7f51\u7edc\u670d\u52a1\u5668\uff0c\u53ef\u4ee5\u5904\u7406\u6d4f\u89c8\u5668\u53d1\u8fc7\u6765\u7684\u8bf7\u6c42\uff0c\u7136\u540e\u5c06\u6307\u5b9a\u7684\u5b57\u7b26\u4e32\u5185\u5bb9<\/strong>\u8fd4\u56de\u3002<\/p> \n \u8fd9\u4e2a\u7b80\u5355\u7684\u4ee3\u7801\u5df2\u7ecf\u53ef\u4ee5\u5b9e\u73b0\u7528\u4e8e\u5c0f\u767d\u673a\u5668\u4eba\u7684\u7f51\u7edc\u8bf7\u6c42\u5904\u7406\u4e86\uff0c\u56e0\u4e3a\u5927\u81f4\u53ea\u7528\u5230GET\u548cPOST\u4e24\u79cdHTTP\u65b9\u6cd5\uff0c\u53ea\u9700\u8981\u5728GetContext<\/strong>\u65b9\u6cd5\u91cc\u5224\u65adGET\u3001POST\u65b9\u6cd5\uff0c\u7136\u540e\u5206\u522b\u7ed9\u51fa\u54cd\u5e94\u5c31\u53ef\u4ee5\u4e86\u3002<\/p> \n \u4f46\u662f\u6211\u4eec\u7684\u76ee\u7684\u662f\u5f00\u53d1\u4e00\u4e2a\u771f\u6b63\u7684\u7f51\u7edc\u670d\u52a1\u5668\uff0c\u5f53\u7136\u4e0d\u80fd\u53ea\u6ee1\u8db3\u4e8e\u8fd9\u6837\u4e00\u4e2a\u4e13\u7528\u7684\u670d\u52a1\u5668\uff0c\u6211\u4eec\u8981\u7684\u662f\u53ef\u4ee5\u63d0\u4f9b\u7f51\u9875\u670d\u52a1\u7684\u670d\u52a1\u5668\u3002<\/p> \n \u90a3\u5c31\u7ee7\u7eed\u5427\u3002<\/p> \n \u6839\u636e\u6211\u7684\u7814\u7a76\uff0c\u63d0\u4f9b\u7f51\u9875\u8bbf\u95ee\u670d\u52a1\u7684\u670d\u52a1\u5668\u505a\u8d77\u6765\u786e\u5b9e\u6709\u4e00\u70b9\u9ebb\u70e6\uff0c\u56e0\u4e3a\u9700\u8981\u5904\u7406\u7684\u4e1c\u897f\u5f88\u591a\u3002\u9700\u8981\u6839\u636e\u6d4f\u89c8\u5668\u8bf7\u6c42\u7684\u4e0d\u540c\u6587\u4ef6\u7ed9\u51fa\u4e0d\u540c\u54cd\u5e94\uff0c\u5904\u7406Cookies\uff0c\u8fd8\u8981\u5904\u7406\u7f16\u7801\uff0c\u8fd8\u6709\u5404\u79cd\u51fa\u9519\u7684\u5904\u7406\u3002<\/p> \n \u9996\u5148\u6211\u4eec\u8981\u786e\u5b9a\u4e00\u4e0b\u6211\u4eec\u7684\u670d\u52a1\u5668\u8981\u63d0\u4f9b\u54ea\u4e9b\u6587\u4ef6\u7684\u8bbf\u95ee\u670d\u52a1\u3002<\/p> \n \u8fd9\u91cc\u6211\u7528\u4e00\u4e2a\u5b57\u5178\u7ed3\u6784\u6765\u4fdd\u5b58\u3002<\/p> \n \u57fa\u672c\u539f\u7406<\/h2> \n
\n
\u592a\u957f\u4e0d\u770b\u7248\u539f\u7406<\/h2> \n
\u8bdd\u4e0d\u591a\u8bf4\uff0c\u76f4\u63a5\u4e0a\u4ee3\u7801<\/h2> \n
class Program { static void Main(string[] args) { string port = "8080"; HttpListener httpListener = new HttpListener(); httpListener.Prefixes.Add(string.Format("http:\/\/+:{0}\/", port)); httpListener.Start(); httpListener.BeginGetContext(new AsyncCallback(GetContext), httpListener); \/\/\u5f00\u59cb\u5f02\u6b65\u63a5\u6536request\u8bf7\u6c42 Console.WriteLine("\u76d1\u542c\u7aef\u53e3:" + port); Console.Read(); } static void GetContext(IAsyncResult ar) { HttpListener httpListener = ar.AsyncState as HttpListener; HttpListenerContext context = httpListener.EndGetContext(ar); \/\/\u63a5\u6536\u5230\u7684\u8bf7\u6c42context\uff08\u4e00\u4e2a\u73af\u5883\u5c01\u88c5\u4f53\uff09 httpListener.BeginGetContext(new AsyncCallback(GetContext), httpListener); \/\/\u5f00\u59cb \u7b2c\u4e8c\u6b21 \u5f02\u6b65\u63a5\u6536request\u8bf7\u6c42 HttpListenerRequest request = context.Request; \/\/\u63a5\u6536\u7684request\u6570\u636e HttpListenerResponse response = context.Response; \/\/\u7528\u6765\u5411\u5ba2\u6237\u7aef\u53d1\u9001\u56de\u590d response.ContentType = "html"; response.ContentEncoding = Encoding.UTF8; using (Stream output = response.OutputStream) \/\/\u53d1\u9001\u56de\u590d { byte[] buffer = Encoding.UTF8.GetBytes("\u8981\u8fd4\u56de\u7684\u5185\u5bb9"); output.Write(buffer, 0, buffer.Length); } } } <\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre> \n
\/\/\/ <summary> \/\/\/ MIME\u7c7b\u578b \/\/\/ <\/summary> public Dictionary<string, string> MIME_Type = new Dictionary<string, string>() { { "htm", "text\/html" }, { "html", "text\/html" }, { "php", "text\/html" }, { "xml", "text\/xml" }, { "json", "application\/json" }, { "txt", "text\/plain" }, { "js", "application\/x-java<\/a> script" }, { "css", "text\/css" }, { "bmp", "image\/bmp" }, { "ico", "image\/ico" }, { "png", "image\/png" }, { "gif", "image\/gif" }, { "jpg", "image\/jpeg" }, { "jpeg",