












































這里很明顯,最重要的是對Processor的#process()的調用,直接上代碼,當然,方法太長也略過了很多部分。另外對請求的byte[]的解析就不上代碼了,太長了,主要的方式就是byte[]循環的方式,這也是為了提高效率的考慮,畢竟使用字符串和byte相比還是要慢的。











































































































這段代碼有分4個部分需要關注下。
(1) 對inputBuffer的#parseRequestLine()的調用,這里主要就是讀入Socket的數據并且解析出請求的URI;
(2) 對inputBuffer的#parseHeaders()的調用,這里就是讀取請求中的請求頭了;
(3) #prepareRequest()的調用,這里主要是對前兩步得到的數據進行分析使用,構建處理請求的上下文屬性,并且如果請求的transfer-encoding域有值,需要配置相應的Filter去處理。默認有IdentityInputFilter,ChunkedInputFilter,VoidInputFilter,BufferedInputFilter四種;
(4) 對CoyoteAdapter的#service()的調用,這里就準備進入PipeLine的下一段管道了。
全文完。