[ Network ] HTTP 프로토콜

이숭인·2021년 9월 2일
0

[Network] 네트워크

목록 보기
5/13

HTTP 프로토콜


HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다.

  • 웹에서 이루어지는 모든 데이터 교환 의 기초이며, 클라이언트 - 서버 프로토콜

  • 하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온 하위 문서들로 재구성됩니다.


클라이언트 - 서버 프로토콜

수신자 측에 의해 요청이 초기화되는 프로토콜.



HTTP 프로토콜 특징

HTTP 프로토콜은 TCP/IP 통신 위에서 동작하며, 상태가 없는(stateless) 프로토콜입니다.

  • 상태가 없기 때문에 데이터를 주고 받기 위한 각각의 데이터 요청이 독립적으로 관리가 된다.
    (이전 데이터 요청과 다음 데이터 요청은 서로 관련이 없다.)

위와 같은 특징 덕분에 서버는 세션 과 같은 별도의 추가 정보 를 관리하지 않아도 되고, 다수의 요청 처리부하 를 줄일 수 있는 성능 상의 이점 이 생깁니다.


HTTP Request & HTTP Response

HTTP 프로토콜로 데이터를 주고받기 위해서는 서버와 클라이언트간의 데이터 요청, 응답이 필요합니다.

  • HTTP Request : URL + 요청 메서드
  • HTTP Response : 상태 코드 + 응답 Body

HTTP Request 에 필요한 URL 과 요청 메서드,
HTTP Response 에 필요한 상태 코드에 대해 알아보도록 합시당.



URL

URL 의 구조로는 아래 사진과 같습니다.




## HTTP 요청 메서드
  • GET : 존재하는 자원에 대한 요청
  • POST : 새로운 자원 생성
  • PUT : 자원 변경
  • DELETE : 자원 삭제

HTTP 상태 코드

HTTP 상태 코드 는 서버에서 설정해주는 응답 정보 입니다.

서버에서 응답으로 오는 주요 상태 코드를 쭉 나열해보자면


200 번대

200번대의 상태 코드는 대부분 성공을 의미 합니다.

  • 200 : GET 요청에 대한 성공
  • 204 : No Content. 성공했으나 응답 본문에 데이터가 없음
  • 205 : Reset Content. 성공했으나 클라이언트의 화면을 새로 고침하도록 권고
  • 206 : Partial Conent. 성공했으나 일부 범위의 데이터만 반환

400 번대

400번대 상태 코드는 대부분 클라이언트의 코드가 잘못된 경우 입니다. 유효하지 않은 자원을 요청했거나 요청이나 권한이 잘못된 경우 발생합니다. 가장 익숙한 상태 코드는 404 코드입니다. 요청한 자원이 서버에 없다는 의미죠.

  • 400 : Bad Request, 잘못된 요청
  • 401 : Unauthorized, 권한 없이 요청. Authorization 헤더가 잘못된 경우
  • 403 : Forbidden, 서버에서 해당 자원에 대해 접근 금지
  • 404 : Not found
  • 405 : Method Not Allowed, 허용되지 않은 요청 메서드
  • 409 : Conflict, 최신 자원이 아닌데 업데이트하는 경우. ex) 파일 업로드 시 버전 충돌

500 번대

500번대 상태 코드는 서버 쪽에서 오류가 난 경우 입니다.

  • 501 : Not Implemented, 요청한 동작에 대해 서버가 수행할 수 없는 경우
  • 503 : Service Unavailable, 서버가 과부하 또는 유지 보수로 내려간 경우



결과적으로 HTTP 프로토콜은 ...

URL, 요청 메서드, 상태 코드 를 이용해 데이터를 요청 하고 요청한 데이터에 대한 응답을 받을 수 있습니다.

profile
iOS Developer

0개의 댓글