httpComponents 似乎是原先 apache commons HttpClient 重構(gòu)的項(xiàng)目。
這個(gè)項(xiàng)目中除了原先作為 httpClient的項(xiàng)目之外還有一個(gè)http底層實(shí)現(xiàn)HttpCore項(xiàng)目。
本來在寫一個(gè)tcp/ip 服務(wù)器程序時(shí)想找一個(gè)http message解析器的沒想到找到了 HttpComponents。
雖然剛剛beta1版本,但是其代碼確實(shí)比較經(jīng)典。
分析其協(xié)議底層代碼(主要是nio),對io部分還進(jìn)行了通用型的封裝。比如EnpandableByteBuffer CharArrayBuffer等等。
粗略了看了一下nio通信部分的實(shí)現(xiàn),也是那種比較經(jīng)典的模式。
從作者對繼承與實(shí)現(xiàn)的使用也很清晰,感覺應(yīng)該是經(jīng)過長時(shí)間整理分析的結(jié)果。
而HttpMessage族作為http消息包的結(jié)構(gòu)分解也基本符合rfc1945 rfc2116。
總之值得整體研究一番,學(xué)習(xí)nio、(http)協(xié)議實(shí)現(xiàn)、甚至java基本語法使用的好教材。