본문 바로가기

안드로이드/Network

[서버 통신] - Http 프로토콜

우리는 하나의 서비스를 제작할 때, 크게 3가지로 나눈다.

 

1. 사용자들이 직접 접하는 클라이언트

2. 클라이언트로부터 요청 받은 내용을 추려 전달해주는 서버

3. 데이터를 저장하는 데이터베이스

 

보통은 서버에서 데이터베이스까지 관리하는 경우가 많다.

 

클라이언트와 서버는 서로 통신을 하여 데이터를 주고 받아야 하는데 이때 사용되는 통신 프로토콜이 Http 프로토콜이다.

 

HTTP 프로토콜이란?

Http 프로토콜은 정보(데이터)를 송·수신하도록 설계된 프로토콜이다.

 

기본적으로 요청과 응답으로 나누어지며,

 

요청은 클라이언트가 서버에 데이터를 요청할 때 사용되며, 구성 요소는 다음과 같다.

 

요청 구성 요소

1. 요청 Header

Hearder는 클라이언트가 사용하는 브라우저 및 앱, 요청되는 데이터와 같은 핵심 정보를 전달한다.

이때 정보는 Key-Value의 형태로 전달

 

2. URL

URL은 하나의 주소로 우리가 데이터를 요청할 때 그에 맞는 URL로 요청을 보내 원하는 데이터를 얻어올 수 있다.

예를 들어

  • naver.com
  • google.com

모두 URL이며, 해당 URL로 접속을 하면 서버에서 이에 맞는 데이터를 넘겨주면서 우리가 알고 있는 naver, google 화면이 사용자에게 보여지게 된다.

3. 메서드

우리는 URL로 요청을 보낼 때 반드시 동반되어 같이 전송해야 하는 것이 있다.

 

그것이 바로 메서드이다.

 

URL로 요청만 보내면 서버 입장에서는 데이터를 수정하는 것인지, 데이터를 삭제할 것인지, 기존의 데이터를 받아가기만 할 건지 알 수 있는 방법이 없다.

 

따라서 메서드를 동반하여 우리가 원하는 요청을 서버에게 명확하게 알려주어야 한다.

 

메서드의 종류는 다음과 같다.

 

GET

URL에 해당하는 데이터만 받아 올 경우 사용된다.

 

POST

클라이언트에서 어떠한 데이터를 함께 보내 이에 맞는 데이터를 요청할 때 사용된다.

Ex) 로그인 할 때 아이디와 비밀번호를 서버로 전송하여 계정 유무를 확인할 때 사용

 

PUT

데이터를 수정할 때 사용된다.

Ex) 비밀번호 변경

 

DELETE

데이터를 삭제할 때 사용된다.

 

응답 구성요소

1. 상태 코드

요청에 대한 결과를 나타내주는 코드

 

100번대 - 임시 응답 / 지금까지의 요청은 완료되었으니 계속 진행

 

200번대 - 성공

 

300번대 - 추가 동작 필요

 

400번대 - 클라이언트 에러 / 요청 내용 중 잘못된 것이 있음

 

500번대 - 서버 에러 / 서버에서 처리 과정 중에 생긴 에러

 

2. Header

요청과 마찬가지로 핵심 정보가 담겨온다.

 

3. Body

요청한 데이터들이 담겨 오며, 형태는 주로 Json

{
  "user": [
    {
      "name": "Hong",
      "age": 29,
      "email": "abc@google.com"
    },
    {
      "name": "Kim",
      "age": 39,
      "email": "abcd@google.com"
    }
  ]
}

'안드로이드 > Network' 카테고리의 다른 글

[안드로이드] 서버 통신 Retrofit2  (0) 2023.11.06