HttpURLConnection를 이용해 HTTP 통신하기(1)

이애옹·2023년 11월 8일
0

📝 HTTP 통신이란?

HyperText Transfer Protocol의 약자로 서버와 클라이언트 간 통신에 사용되는 규약이다.
소켓을 이용한 TCP/IP 통신을 기반으로 수행되지만, 거기에 HTTP 규약이 추가된 형태로 수행된다.

HTTP request와 response는 데이터 정보를 담는 Header, 데이터를 담는 body 부분으로 구성된다.

Header의 정보는 개행으로 구분되며 개행이 두번 되는 지점부터 body가 시작된다/

Request와 Response의 세부 구성은 다음과 같다.

이미지 출처 : Joogle_HttpURLConnection을 이용한 HTTP 통신

📝 HttpURLConnection 란?

HttpURLConnection란 쉽게 말해 HTTP 통신을 가능하게 해 주는 클래스다.

쉽게 말해 웹 서버와의 HTTP 요청 및 응답을 처리하는데 사용된다.

또한 HttpURLConnectionURLConnection의 하위 클래스로 HTTP 프로토콜을 통한 통신을 위해 특별히 설계되었다. 따라서 HttpURLConnectionURLConnection 의 모든 기능을 상속 받으면서 HTTP 특정 기능을 추가로 제공한다 !!!

📝 HttpURLConnection의 특징

  • 데이터 타입이나 길이의 제한이 거의 없어, 주로 미리 길이를 알지 못하는 스트리밍 데이터를 주고 받는데 사용한다.

  • 요청 방식을 확인/설정, redirect 여부 결정, 응답 코드와 메시지를 Read, 프록시 서버가 사용되었는지 여부 확인 메서드 등을 가지고 있다.

  • 다양한 HTTP 응답 코드에 해당하는 상수 값들이 정의되어 있다.

  • URLConnection 클래스의 gerPermission() 메서드를 오버라이드 해 놓았다.

  • URLConnection 클래스와 마찬가지로 생성자가 protected로 선언되어 있기 때문에 기본적으로 개발자가 직접 HttpURLConnection 객체를 생성 할 수 없다.
    하지만 http URL을 사용하는 URL 객체의 openConnection() 메서드가 리턴하는 URLConnection 객체HttpURLConnection의 인스턴스가 될 수 있기 때문에 리턴된 URLConnection을 다음과 같이 HttpURLConnection으로 캐스팅 해서 사용한다.

URL u = new URL("http://www.naver.com");
HttpURLConnection http = (HttpURLConnection) u.openConnection();

👀 참고자료

profile
안녕하세요

0개의 댓글