반응형

인터넷에서 데이터를 주고받을 때는 HTTP를 많이 사용합니다.

웹브라우저에서 서버에 연결하고 웹페이지를 받아 와 화면에 보여줄 때 사용하는 것이 HTTP이기 때문에 인터넷에서 웹페이지를 요청하고 응답으로 받을 때는 HTTP를 사용한다고 생각하면 쉽습니다.

그러면 HTTP는 무엇일까요?

HTTP도 앞에서 만들어보았던 소켓 기반으로 동작합니다.

데이터를 주고받을 때 HTTP라는 표준 프로토콜에 맞게 주고받는 것이죠.

HTTP가 무엇인지 좀 더 구체적으로 알아봅시다.



HTTP 요청과 응답

웹서버는 HTTP 요청을 받아 처리할 수 있습니다.

웹브라우저와 같은 클라이언트는 웹서버에 연결을 만든 후 요청을 보내고 응답을 받아 화면에 보여주게 됩니다.

요청을 받거나 응답을 줄 때는 HTTP라는 국제표준에 맞는 포맷으로 주고받게 됩니다.

데이터를 주고받을 때의 포맷을 보면, 헤더(Header)와 바디(Body)로 구분되고 헤더에 어떤 것들이 들어갈 수 있는지가 표준으로 정해져 있습니다. 그리고 바디에는 보내고 받기 위한 대상 데이터를 넣어둘 수 있습니다.

 

요청 포맷

HTTP 요청 포맷을 보면, 첫 번째 줄이 기본적인 요청 정보를 포함하고 있습니다.

GET이나 POST와 같은 요청 방식(Method), 요청 패스 그리고 HTTP 버전 등이 들어가 있습니다.

헤더에 들어가 있는 각각의 줄은 하나의 속성을 나타내고 속성이름 + 콜론(:) + 속성값으로 구성됩니다.

각각의 줄은 \r\n 코드로 구분되므로 한 줄씩 보이게 됩니다.

헤더와 바디는 \r\n으로 구분되므로 헤더와 바디가 한 줄 더 띄워져 있는 모양이라고 생각하면 됩니다.

바디에는 전송하고자 하는 데이터를 넣을 수 있습니다.

응답 포맷

응답 포맷은 요청 포맷과 크게 다르지 않습니다.

헤더와 바디로 구분되고 헤더에는 한 줄씩 속성이 들어갑니다.

응답의 첫 줄은 상태를 나타내며 HTTP 버전과 응답 코드, 응답 메시지 등으로 구성됩니다.

HTTP에 대한 좀 더 자세한 내용은 표준 문서를 참조하면 됩니다.

표준 문서에는 자세한 설명과 함께 예제 데이터도 나와 있습니다.

구글 사이트와 같은 실제 웹서버로 어떻게 요청하고 어떻게 응답을 받는지 알고 싶다면 크롬 브라우저의 개발자 도구를 사용할 수 있습니다.

 

 

반응형

'안드로이드 개발 > 부스트코스(안드로이드 프로그래밍)' 카테고리의 다른 글

volley  (0) 2019.03.19
웹으로 요청하기  (0) 2019.03.18
소켓 사용하기  (0) 2019.03.16
스레드  (0) 2019.03.16
바로가기 메뉴만들기  (0) 2019.03.15
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기