본문 바로가기

Coding/내일배움캠프

[내일배움캠프] HTTP 메서드, GET, POST, 멱등성 | 최종 프로젝트 Day 03 | Node.js 4기 | Day 84 | 24.03.28.(목)

면접카타 24.03.28.(목)

5. HTTP 메서드에 대해 설명해주세요.

- HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타낸다. 간혹 요청 메서드를 “HTTP 동사”라고 부르기도 한다. 각각의 메서드는 다른 의미를 구현하지만, 일부 기능은 메서드 집합 간에 서로 공유하기도 한다. 이를 테면 응답 메서드는 안전하거나, 캐시 가능하거나, 멱등성을 가질 수 있다.

안전함

- HTTP 메서드가 서버의 상태를 바꾸지 않으면 그 메서드가 안전하다고 말한다. 다른 말로 하면, 읽기 작업만 수행하는 메서드는 안전하다. 흔히 쓰이는 HTTP 메서드 중에서는 GET, HEAD, OPTIONS가 안전하다. 모든 안전한 메서드는 멱등성 또한 갖지만, 모든 멱등성을 지닌 메서드가 안전한 것은 아니다. 예컨대 PUT과 DELETE는 둘 다 멱등성을 가졌지만 안전하지는 않은 메서드이다.

Cacheable

- 캐시 가능(cacheable) 한 응답은 캐시할 수 있는 HTTP 응답으로, 나중에 검색하고 사용하기 위해 저장하여 새 요청을 서버에 저장한다. 모든 HTTP 응답을 캐시할 수 있는 것은 아니며, 캐시할 HTTP 응답에 대한 제약 조건은 다음과 같다.
    - GET 또는 HEAD 메서드는 요청에 사용된 메서드는 그 자체로 캐시 가능하다. POST 또는 PATCH 요청에 대한 응답은 유효성이 표시되고 Content-Location 헤더가 설정된 경우 캐시될 수도 있지만 거의 구현되지 않았다. (예를 들어, Firefox는 https://bugzilla.mozilla.org/show_bug.cgi?id=109553에 따라 이를 지원하지 않는다.) PUT 혹은 DELETE 다른 메서드는 캐시 가능하지 않고 그 결과 역시 캐시할 수 없다.
    - 애플리케이션 캐싱에 의해 알려진 응답의 상태 코드는 캐시 가능한 것으로 간주된다.
    - 응답에는 Cache-Control과 같은 캐싱을 방지하는 특정 헤더가 있다.


멱등성

- 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말한다.

출처

https://developer.mozilla.org/ko/


15. GET, POST의 개념과 함께 데이터의 흐름에 대해서 설명해주세요.

- GET : 리소스 조회
- POST : 요청 데이터 처리, 주로 등록에 사용

GET

- 리소스 조회 메서드
- 데이터는 쿼리스트링을 통해 전달
- 정적 데이터 조회 과정
    - 이미지, 정적 텍스트 문서 GET
    - 쿼리 파라미터 없이 리소스 경로로 단순하게 조회 가능
- 동적 데이터 조회 과정
    - 주로 검색, 게시판 목록에서 검색어로 이용
    - 쿼리 파라미터 사용해서 데이터를 전달
    - 쿼리 파라미터는 key1=value1&key2=value2 구조로 되어있음

POST

- 전달한 데이터 처리/생성 요청 메서드 (Create)
- 메시지 바디를 통해 서버로 요청 데이터 전달하면 서버는 요청 데이터를 처리하여 업데이트
- 전달된 데이터를 주로 신규 리소스 등록, 프로세스 처리에 사용
- 만일 데이터를 GET 하는 데 있어, JSON을 조회 데이터를 넘겨야 하는 애매한 경우 POST를 사용

출처

https://www.citefred.com/c77a3fd3-9888-45e5-99cb-953a583fe09a

https://velog.io/@theon2/GET-POST%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%ED%95%A8%EA%BB%98-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%9D%90%EB%A6%84%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%84%A4%EB%AA%85%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94

https://velog.io/@cjstkrak/92-%EA%B8%B0%EC%88%A0%EB%A9%B4%EC%A0%91-15.-GET-POST%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%ED%95%A8%EA%BB%98-%EB%8D%B0%EC%9D%B4%ED%84%B0-%ED%9D%90%EB%A6%84%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%84%A4%EB%AA%85%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94

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 메서드가 왜 필요한가?

 

 

CI/CD

 

 

  • 오류 발생, 탄력적 IP 주소 삭제 후 다시 생성 완료

 

  1. 인스턴스 생성 
  2. 탄력적 IP 생성
  3. RDS 생성

 

..?

 

EC2 인스턴스 연결 방법

 

  • SSH 연결
  • EC2 인스턴스 연결
  • Session Manager
  • EC2 직렬 콘솔

 

IPAM -> Public IP 연결 ~~ 어찌저찌 완료