※ 본 카테고리의 내용은 부스트캠프 챌린지 기간동안 학습한 내용을 바탕으로 정리한 내용입니다.

 

목차


    0. HTTP 요청

     

    출처 : https://joshua1988.github.io/web-development/http-part1/

     

    HTTP 요청에 대해서 알기 위해서는 HTTP 프로토콜이 무엇인지부터 알아야겠죠?

    HTTP(Hypertext Transfer Protocol)인터넷 상에서 데이터를 주고받기 위한 서버/클라이언트 모델을 따르는 프로토콜입니다.

    웹에서는 브라우저와 서버 간에 데이터를 주고받기 위한 방식으로 HTTP 프로토콜을 표준으로 사용하고 있기 때문에 웹 개발자라면 반드시 HTTP에 대한 지식을 알고 있어야 합니다!!

     

    HTTP 프로토콜의 가장 중요한 특징은 상태가 없다는 프로토콜이라는 점입니다.

    이 말이 어려울 수 있는데, 상태가 없다는 말은 데이터를 주고받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 된다는 말입니다.

    이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없다는 것이죠.

    이렇게 분리가 되어있기 때문에 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고, 이는 서버의 부하를 줄일 수 있는 성능상의 이점도 만들어냅니다.

     

    이제 본격적으로 요청에 대해서 알아보겠습니다.

    HTTP를 통해 요청을 하기 위해서는 브라우저(클라이언트)와 서버가 존재해야 합니다.

    브라우저는 요청을 보내는 쪽을 의미하고, 서버란 요청을 받는 쪽을 의미합니다.

     

    그렇다면 어떻게 요청을 보낼까요?

    브라우저는 바로 URL을 통해 요청을 보내게 됩니다.

    URL(Uniform Resource Locator)서버에 무언가를 요청하기 위한 영문 혹은 숫자로 된 주소입니다.

    IP 주소를 통해서 서버와 연결할 수도 있지만, 아무래도 컴퓨터적인 숫자보다는 인간적인 문자가 좀 더 기억하기 편하기 떄문에 대다수는(사실 거의 99%..) URL을 통해 서버에 접근합니다.

     

    이제 URL을 통해 특정 동작을 하려면 어떻게 해야할까요?

    프로그래밍 언어의 함수처럼, HTTP는 GET, POST, PUT, DELETE라는 네 가지의 주요 메소드를 가지고 있습니다.

     

    GET : 이미 존재하는 자원을 요청

    POST : 새로운 자원을 생성

    PUT : 이미 존재하는 자원을 변경

    DELETE : 이미 존재하는 자원을 삭제

     

    이 중에서도 가장 자주 사용하는 메소드는 GETPOST입니다.

    특히 POST는 때에 따라 PUT과 DELETE동작을 수행하기도 합니다!!

     


    1. HTTP 상태 코드

    URL을 보내주는 것이 클라이언트의 몫이었다면, 요청에 응답하는 것은 서버의 몫이겠죠?

    클라이언트가 URL을 이용해서 요청을 보내고 나면 서버에서 응답으로 상태 코드를 보내줍니다.

    이 코드는 200번대부터 500번대까지 다양하게 존재하지만, 그 중에서 가장 대표적인 코드는 200(성공)404(실패)입니다.

     

    아래 예시를 통해서 HTTP 상태 코드에 대해 더 자세하게 알아봅시다!

     

    - 200번대 : 성공

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

    - 300번대 : 리다이렉션 (클라이언트가 이전 주소로 데이터를 용청하여 서버에서 새 URL로 리다이렉트를 유도하는 경우)

    • 301 : 요청한 자원이 새 URL에 존재
    • 303 : 요청한 자원이 임시 주소에 존재
    • 304 : 요청한 자원이 변경되지 않았으므로 캐싱된 자원을 사용하도록 권고

     

    - 400번대 : 클라이언트 에러 (클라이언트의 코드가 잘못된 경우)

    • 400 : 잘못된 요청
    • 401 : 권한 없이 요청
    • 403 : 서버에서 해당 자원에 대해 접근 금지(Forbidden)
    • 404 : 요청한 자원이 서버에 없음(Not Found)
    • 405 : 허용되지 않은 요청 메소드
    • 409 : 최신 자원이 아닌데 업데이트

     

    - 500번대 : 서버 에러

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

     


     

    반응형
    • 네이버 블로그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기