@Override
    public void read(IoBuffer readBuf, IoBuffer writeBuf) throws Exception {
        logger.info("Poccess the Session[" + this.getId() + "] ");
        logger.debug(readBuf.toString());
        if (currentState == STATE_READ_HEAD) {
            String buf = readBuf.getString("ASCII");
            int endPos = buf.indexOf("\r\n\r\n");
            if (endPos == -1) {
                remain(BUF_SIZE, IoState.READ);
            }
            currentState = STATE_READ_BODY;
            String header = buf.substring(0, endPos);
            parseHeader(header);
            bodyStartPos = endPos + 4;
        }
        if (currentState == STATE_READ_BODY) {
            if (bodyStartPos + bodyLen > readBuf.position()) {
                remain(bodyStartPos + bodyLen - readBuf.position(), IoState.READ);
                return;
            }
            currentState = STATE_READ_HEAD;
            String body = readBuf.getString(bodyStartPos, bodyLen, "ASCII");
            parseBody(body);
            handle(readBuf, writeBuf);
            setNextState(IoState.WRITE);
            return;
        }
        /** 读取剩下buffer */
        remain(BUF_SIZE, IoState.READ);
    }