HTTP

마데슾 : My Dev Space·2020년 1월 17일
1

[CODESTATES]Immersive Flex

목록 보기
23/28

HTTP란?

클라이언트와 서버가 통신하기 위해서 HTTP라고 하는 규약 혹은 규칙을 지켜서 통신을 한다.

  • HTTP(Hypertext Transfer Protocol)
  • Protocol ? 상호 간에 정의한 규칙을 의미한다.(규약, 규칙)
  • 웹에서는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 HTTP 프로토콜을 사용하고 이다.
  • 프런트엔드 개발자라면 필수적으로 알아야 하는 지식이다

HTTP 프로토콜 특징?

  1. 상태가 없는(stateless)
    • 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다
    • 매번 보내는 요청이 독립적이기 때문에 문맥이라는 것이 형성되지 않는다.
    • 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다
    • 장점
      - 세션과 같은 별도의 추가 정보를 관리하지 않아도 된다.
      • 다수의 요청 처리 및 서버의 부하를 줄일 수 있다.
    • HTTP 프로토콜은 일반적으로 TCP/IP 통신 위에서 동작한다.
    • 기본 포트는 80번이다.
  2. connectionless
    • 한번의 요청에는 한번의 응답을 한다.
    • 응답 이후에는 연결이 끊기기 때문에 더이상 응답을 할 수 없다.
    • ex) (A) 피시방갈래? => 언제? (ㅇ) , (A) 피시방갈래? => (1)언제?(ㅇ) (2)무슨 게임 할건데?(x)

HTTP Request & HTTP Response

  • HTTP 프로토콜로 데이터를 주고받기 위해서는 요청(Request)을 보내고 응답(Response)을 받아야 한다.
  • 클라이언트란 요청을 보내는 쪽을 의미하며 일반적으로 웹 관점에서는 브라우저를 의미한다.
  • 서버란 요청을 받는 쪽을 의미하며 일반적으로 데이터를 보내주는 원격지의 컴퓨터를 의미한다.

URL

  • URL(Uniform Resource Locators)
  • 서버에 자원을 요청하기 위해 입력하는 영문 주소
    image.png
    [출처 : 캡틴판교님 블로그]

HTTP 요청 메서드

요청하는 데이터에 특정 동작을 수행하고 싶을때 HTTP 요청 메서드(Http Request Methods)를 이용한다.

  • 주요 메서드
    - GET : 서버에 자원을 요청
    • POST : 서버에 자원을 생성
    • PUT : 서버에 존재하는 자원을 수정
    • DELETE : 서버에 존재하는 자원을 제거
  • 기타 메서드
    - HEAD : 서버 헤더 정보를 획득. GET과 비슷하나 Response Body를 반환하지 않음
    - OPTIONS : 서버 옵션들을 확인하기 위한 요청. CORS에서 사용 데이터에 대한 조회, 생성, 변경, 삭제 동작을 HTTP 요청 메서드로 정의할 수 있다.

HTTP 상태 코드

  • HTTP 상태 코드(HTTP Status Code)
  • 서버에서 설정해주는 응답(Response) 정보
  • 상태 코드로 에러 처리를 할 수 있다.

주요 상태 코드

2xx - 성공

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

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

3xx - 리다이렉션

300번대의 상태 코드는 대부분 클라이언트가 이전 주소로 데이터를 요청하여 서버에서 새 URL로 리다이렉트를 유도하는 경우입니다.

  • 301 : Moved Permanently, 요청한 자원이 새 URL에 존재
  • 303 : See Other, 요청한 자원이 임시 주소에 존재
  • 304 : Not Modified, 요청한 자원이 변경되지 않았으므로 클라이언트에서 캐싱된 자원을 사용하도록 권고. ETag와 같은 정보를 활용하여 변경 여부를 확인

4xx - 클라이언트 에러

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

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

5xx - 서버 에러

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

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

image.png
[이미지 출처 : 캡팁판교님 블로그]

👨‍🏫 참고블로그 - 캡틴판교(프런트엔드 개발자가 알아야하는 HTTP 프로토콜 Part 1)
👨‍🏫 참고블로그 - 제로초(알아둬야 할 HTTP 공통 & 요청 헤더)

profile
👩🏻‍💻 🚀

0개의 댓글