[iOS] HTTP Request HEAD HTTP/2 대응
안녕하세요. 물먹고하자 입니다 :)
새해복 많이 받으세요.
올해도 어김없이 바쁘게 지내고 있는데,
글쓰던걸 마무리 못하고 새로운글을 먼저 작성하게 되었습니다.
문제점
기존에 HTTP Reqeust 중 HEAD로 요청하는 API가 존재하는데,
Protocol : HTTP/1.1 과 HTTP/2 때 Response header 정보에 키값들이 소문자로 변경 되었습니다.
그 외에 기능강화가 주목적이긴한데, header의 키값들이 소문자로 변경 되었으니 수정이 필요했습니다.
참고 : https://luavis.me/http2/http2-overall-operation
기존코드
Apple 참고 : allHeaderFields, iOS 2.0
거의 iOS 8.x 쯤 도입 후 변경하지 않고 사용하던 방식이였는데, allHeaderFields의 값을 Key/Value 로 빼서 쓰는정도로만 사용하고 있었다. (키값이다보니 대소문자를 확실하게 가림)
변경코드
Apple 참고 : value(forHTTPHeaderField:), iOS 13.0
HTTP 규약에 맞춰 헤더필드명의 대소문자를 구분하지 않는 함수를 제공해 준다.
이를 통해 HTTP/1.1 지원 서버와 HTTP/2 지원 하는 서버 둘다 체크해보니 정상적으로 값을 뽑아올수 있었습니다.
마무리
솔직히 업무하면서, iOS 신기술 대응 필요점들은 빠르게 진행을 하긴하는데, 서버규약/프로토콜 변경등은 일이 터져야 알게되는것 같다.
그래도 서버개발팀에서 먼저 확인해 주셔서 생각보다 빠르게 대응할 수 있었습니다.
오늘은 끝.
즐거운 코딩되세요~
댓글
댓글 쓰기