네트워킹을 이해하기 위해 알아야 할 사전 지식에 대해 알아보자

📖HTTP Protocol

하이퍼 문서를 전송하는 것에서 시작(현재는 이미지/영상/음성/파일/JSON 등 모든 형태의 데이터 전송 가능) 현재 인터넷의 모든 것은 HTTP로 이루어져 있음

  • www(웹)을 구성하는 기술 중 하나(HTML/HTTP/URL)
  • HTTP 메세지에 데이터를 담아 통신을 함

📎HTTP 요청 메세지

요청 메소드

사용자 요청의 목적/종류를 알리는 메소드

메소드설명데이터 전송 방법예시
GET리소스 취득(조회)쿼리 파라미터게시판 글 읽어오기(데이터 표시)
POST엔티티(등록)메세지 바디게시판 글쓰기/댓글 달기/ 새로운 주문 생성
PUT파일 전송(데이터 대체/없으면 생성)메세지 바디게시글 수정(데이터 전부 대체)
DELETE파일 삭제(삭제)게시물 삭제
PATCH리소스 부분 변경메세지 바디PUT에서 필요한 부분을 부분 변경
  • 이 외에도 많지만 표의 메소드들은 실제 주로 사용하는 메소드(CRUD)

📎HTTP 응답 메세지

상태 코드

특정 HTTP 요청이 성공적으로 완료되었는지 알려주는 코드

상태 코드 종류클래스설명
1xxinformational리퀘스트를 받아들여 처리중거의 사용 X
2xxSuccess리퀘스트를 정상적으로 처리했음성공
3xxRedirection리퀘스트를 완료하기 위해 추가 동작이 필요
4xxClient Error서버는 리퀘스트 이해 불가클라이언트 에러 (잘못된 요청)
5xxServer Error서버는 리퀘스트 처리 실패서버 에러 (서버 내부의 문제)

📖JSON

데이터를 나타내는 방법 중 하나 (예전엔 XML)

  • key-value로 이루어진 데이터들의 집합
  • 구조화된 데이터를 표현하기 위해 사용
  • 우리가 앱에서 사용할 때는 이걸 클래스나 구조체로 바꿔서 사용

📖REST API

REST의 원리를 따르는 API

📎REST(Representational State Transfer)

자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것

  • HTTP URI(Uniform Resource Identifier)를 통해 자원을 명시
  • HTTP Method(CRUD)를 통해 해당 자원에 대한 CRUD Operation을 적용

API(Application Programming Interface)

상호간의 정보를 교환하기 위한 인터페이스 즉, 요청방식에 대한 약속 이 API는 어떤 주소로 무엇을 요청해야 어떤 결과를 줄건지에 대한 약속이 존재

📖결론적으로 HTTP통신이란

웹에서 clientserver가 통신해 정보를 주고 받는 것

  1. client가 HTTP 요청 메세지(요청 메소드+데이터+기타 등등)를 보내서 server에 요청
    • 요청 메서드 종류 : CRUD
    • 데이터 형태 : JSON
  2. server는 요청 메세지 확인해서 어떤 종류의 요청인지 파악한 후 처리
  3. server는 해당 요청 처리 후 자신이 응답했다는 걸 client에 알리기 위해 HTTP 응답 메세지(상태 코드+데이터+기타 등등)를 client에게 보냄
    • 상태 코드 : 1xx ~ 5xx
    • 데이터 형태 : JSON
  4. client는 요청의 결과인 데이터를 받아서 사용
    • 이 때, JSON 형태의 데이터를 client가 쓸 수 있도록 구조체, 클래스 등으로 바꿈 → 이걸 할 때 API 주소나 메소드 등을 누구나 알아볼 수 있게 작성하자!! 가 REST API

위 내용을 바탕으로 다음 노트에서 iOS의 네트워킹 흐름에 대해 알아보자