개발자가 되어보자

[Weekly Paper] 5. HTTP 메소드 & 코드 출력 예상 본문

Codeit/Weekly Paper

[Weekly Paper] 5. HTTP 메소드 & 코드 출력 예상

HVIN 2023. 11. 19. 20:05

HTTP 메소드

  • 클라이언트와 서버 사이에 이루어지는 요청(request)과 응답(response) 데이터를 전송하는 방식을 말한다.
  • 서버가 수행해야 할 동작을 지정하는 요청을 보내는 방법이다.
  • GET
    • 특정 리소스의 표시를 요청한다. = 리소스 조회
    • 오직 데이터를 받기만 한다.
    • 캐싱이 가능하기 때문에 조회할 때 POST도 사용가능하지만 GET을 사용하는 것이 유리하다.
  • POST
    • 요청 데이터를 처리할 때 사용한다. 주로 요청 데이터를 등록할 때 사용한다.
    • 특정 리소스에 엔티티를 제출할 때 사용한다.
    • 종종 서버의 상태 변화나 부작용을 일으킨다.
  • PUT
    • 리소스를 대체(전체 덮어쓰기, 이미 있는 경우)하거나 해당 리소스가 없으면 생성한다.
    • 리소스를 전체 변경하려고 할 때 사용한다.
    • 목적 리소스 모든 현재 표시를 요청 payload로 바꾼다.
  • DELETE
    • 특정 리소스를 삭제한다.
  •   PATCH
    • 리소스의 일부만을 수정하는데 사용한다.
  • HEAD
    • GET 에서드의 요청과 동일한 응답을 요구하지만, 본문(body)을 제외한 상태 줄과 헤더만 응답한다.
  • CONNECT
    • 목적 리소스로 식별되는 서버로의 터널을 맺는다.
  • OPTIONS
    • 목적 리소스의 통신을 설정하는데 쓰인다.
    • 목적 리소스에 대한 통신 가능 옵션(메서드)을 설명하는데 사용한다(주로 CORS에서 사용한다).
  • TRACE
    • 목적 리소스의 경로를 따라 메시지 loop-back 테스트를 한다.
  • 참고 : https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-HTTP-%EB%A9%94%EC%84%9C%EB%93%9C-%EC%A2%85%EB%A5%98-%ED%86%B5%EC%8B%A0-%EA%B3%BC%EC%A0%95-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC
 

🌐 HTTP 메서드 종류 & 요청 흐름 💯 총정리

HTTP Method 종류 HTTP 메서드란 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식을 일컫는다. 쉽게 말하면 서버에 주어진 리소스에 수행하길 원하는 행동,

inpa.tistory.com


코드 출력 예상

// 1번
let num = 1;
// 2번
setTimeout(() => {
num = 2;
}, 0);
// 3번
num = 3;
// 4번
console.log(num);
  • 출력되는 값은 3이다.
    • 1번에서 num 변수에 1을 할당한다.
    • 2번에는 비동기적으로 실행되는 setTimeout 함수가 있다. 이 함수는 브라우저나 Node.js 환경에서 백그라운드로 이동하고, 제공된 콜백 함수가 0ms 이후에 실행되도록 예약된다.
    • 3번에서 num 변수에 다시 3을 할당한다. 해당 코드는 비동기적인 것이 아니므로 위의 setTimeout과 별개로 즉시 실행된다.
    • 4번에서 현재 num 변수의 값을 출력한다. 현재 num 변수의 값은 3이므로 3이 출력된다.
  • 출력값이 3인 이유는 코드가 위에서부터 순차적으로 실행되었고, setTimeout은 비동기로 예약되어 콜백 함수의 실행이 현재 코드 흐름을 차단하지 않고 3번이 즉시 실행되었기 때문이다.
  • setTimeout의 콜백 함수는 이벤트 루프에 의해 백그라운드에서 처리되고, 현재 코드 실행이 완료된 이후에 실행된다. 그렇다면 현재 코드에서는 1번이 실행된 후 2번은 비동기로 예약되고 3번과 4번이 순차적으로 실행된다. 3번과 4번이 실행된 후에 2번이 실행되는 것인데 2번 실행전에 이미 3번이 실행되고 4번에서 출력되기 때문에 결과적으로 출력값은 3이다.
Comments