HTTP 오류는 parse·dispatch·application·write 경계에서 다르게 번역한다

모든 IOException을 500으로 보내려 하면 이미 깨진 연결에 또 응답을 쓰게 됩니다.

경계처리
parsebad request400
routenot found404
methodunsupported405
applicationunexpected500
writeclient goneclose·metric

핵심: 응답 시작 전과 후를 구분해 status 또는 connection close로 처리합니다.