HTTP form body 처리 순서

stream framing을 끝낸 뒤에야 문자와 key-value 의미를 해석한다.

  1. 길이 제한

    Content-Length가 허용 범위인지 확인한다.

  2. 정확 byte 읽기

    short read를 반복하고 이른 EOF를 거절한다.

  3. MediaType 해석

    type과 charset parameter를 분리한다.

  4. Form decode

    plus와 percent sequence, 반복 key를 복원한다.

핵심: Content-Length는 Reader character 수가 아니라 전송된 byte 수다.