[iOS] HTTP Request HEAD HTTP/2 대응

   [iOS] HTTP Request HEAD HTTP/2 대응


안녕하세요. 물먹고하자 입니다 :)

새해복 많이 받으세요.

올해도 어김없이 바쁘게 지내고 있는데,

글쓰던걸 마무리 못하고 새로운글을 먼저 작성하게 되었습니다.


  문제점

기존에 HTTP ReqeustHEAD로 요청하는 API가 존재하는데,

Protocol : HTTP/1.1HTTP/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 신기술 대응 필요점들은 빠르게 진행을 하긴하는데, 서버규약/프로토콜 변경등은 일이 터져야 알게되는것 같다.

그래도 서버개발팀에서 먼저 확인해 주셔서 생각보다 빠르게 대응할 수 있었습니다.

오늘은 끝.

즐거운 코딩되세요~






댓글