用java socket實現了一個簡單的httpserver, 能夠處理GET, POST,以及帶一個附件的multipart類型的POST。盡管中途遇到了非常多問題, 只是通過在論壇和幾個高手交流了一下,問題都攻克了。假設你認為程序有些地方看不明確,能夠參看這個帖子:http://topic.csdn.net/u/20090625/22/59a5bfc8-a6b6-445d-9829-ea6d462a4fe6.html .
盡管解析http頭不是非常規范,本來應該用原始的字節流, 我採用了一個折衷的方案,用DataInputStream.
本代碼的有用性==0,可是能夠幫助非常好地了解http協議,然后其它的應用層協議大都如此。
假設你從來都沒有了解過http協議,建議先搜索閱讀一下,或者你還能夠用以下的代碼來簡單的看一看究竟瀏覽器和server之間都相互發送了什么數據。
MyHttpClient.java: 模擬瀏覽器的行為, 向server發送get/post請求,然后打印出server返回的消息。這樣就能夠查看當一個請求到來之后, server究竟都給瀏覽器發送了哪些消息。
MyServer.java: 模擬server端接收瀏覽器的請求,然后把整個請求的報文打印出來。程序執行之后直接用瀏覽器測試。
主程序MyHttpServer.
測試文件post.html, upload.html都放在上面程序定義的WEB_ROOT以下。
post.html:處理普通的post請求
upload.html:測試帶附件的post請求
一切准備妥當,而且MyHttpServer執行之后, 在瀏覽器輸入http://localhost:8080/post.html和http://localhost:8080/upload.html就可以進行測試.
