ERR_HTTP2_PROTOCOL_ERROR 200

갓김치·2022년 2월 22일
0

예외

목록 보기
21/28

상황

  • zip 파일 다운로드시 로딩바 구현을 위해 프론트에서는 content-length 값이 필요했다. ZipOutputStream의 size를 구할 수 없어 임의로 zip 하기 전의 파일들의 총합을 구해 전달했다.
  • 그랬더니 브라우저 네트워크탭에서는 파일이 다 받아졌는데, 실제로는 다운로드가 되지 않았다.
  • 브라우저 콘솔에는 ERR_HTTP2_PROTOCOL_ERROR 200 출력되었다.

원인

  • 50 bytes 짜리 파일 2개를 압축한다고 가정했을때, 압축 전 두 파일의 총합은 100 bytes
  • 압축 후에는 약 90 bytes
  • 실제 content-length 는 90 이어야 맞는데, 난 100을 설정해서 보냄
  • 실제 파일은 다 다운로드 되어도 헤더의 content-length를 100으로 해두었기때문에 아직 다 안받아진것처럼 오류 발생

해결

  • 압축된 zip 파일의 size를 content-length에 넣어 보내야한다
  • 하지만 압축된 zip 파일 사이즈를 구할 수가 없어서 결국 원래 방식대로 하되 다른 커스텀헤더에 넣어서 보냈다

참고

profile
갈 길이 멀다

0개의 댓글