본문 바로가기
개발 공부 일지/CS

Q. HTTP 와 HTTPS 차이 / HTTP 메소드

by yelimu 2024. 8. 2.

HTTP 와 HTTPS 차이 

HTTP 는 웹문서와 서버가 통신하도록 하는 애플리케이션 계층의 프로토콜이고 

HTTPS는 HTTP 의 보안을 강화한 프로토콜이다. 애플리케이션 계층과 전송 계층 사이에서 SSL/TLS 프로토콜을 사용하여 보안을 강화한다. 

SSL/TLS는 보안 세션을 기반으로 데이터를 암호화하며, 이를 통해 제3자가 메시지를 도청하거나 변조하지 못하도록 한다. 


HTTP Method 

클라이언트가 서버로 보내는 요청(request)와 응답(response)가 이루어지는 방식을 말하며

주어진 리소스에 수행하길 원하는 행동을 나타낸다.

 

메서드를 사용하는 이유 : 리소스와 동작을 분리하기 위해 사용한다.

메서드를 통해 서버가 수행해야할 동작을 지정하면 URI는 리소스만 식별하면 된다. 

(URI란? 네트워크 상의 리소스를 식별할 수 있는 식별자를 의미하며 URL, URN을 포함하는 개념이라고만 일단 알고있자)

 

Method 종류

  • GET : 서버에게 조회할 리소스를 요청한다. (READ, 조회)
  • POST : 서버에게 본문(body)에 생성할 데이터를 삽입하여 전송한다. (CREATE, 생성)
  • PUT : 서버에게 본문에 수정할 데이터를 삽입하여 전송한다. (UPDATE, 수정)
  • DELETE : 서버에게 삭제할 리소스를 요청한다. (DELETE, 삭제)
  • PATCH : PUT과 비슷하지만 일부만 수정한다는 점에서 다르다.

그외에도 HEAD, CONNECT, OPTION 가 있다. 

 

세부 설명 

GET : 리소스를 조회하는 메서드. 

- URL 입력이나 링크를 클릭하는 것 = GET 요청

- 멱등성 : 여러번 조회 요청을 해도 리소스는 변하지 않는다.

- GET 요청에서 서버에 데이터를 전달하는 경우 쿼리 스트링을 통해 전달한다. → 외부에 데이터 노출 

 

POST : 새로운 리소스를 생성(Create)하는데 사용 

- 성공적으로 creation을 완료하면 201 HTTP응답을 반환한다. 

- 데이터를 메세지 바디에 쿼리 파라미터 형식으로 전달한다. → 메세지 길이의 제한이 없다. 

- 쿼리 파라미터는 key-value 형식이다 : 문자열 데이터 뿐 아니라 객체도 전송할 수 있다. 

- GET과 달리 데이터가 외부로 노출되지 않아 보안상의 이점이 있다. 

- 조회도 가능하지만 멱등성을 지니지 않아 POST 메서드를 여러번 수행할 경우 같은 결과값이 나온다고 보장할수 없음.

 

PUT : 리소스 대체, 수정 / 해당 리소스가 없으면 새롭게 생성

- 리소스를 완전히 대체 (덮어쓰기) 의 개념

- 클라이언트가 리소스를 식별할 수 있다. (구체적인 리소스 위치를 아는 상태에서 URI를 지정) 

- 부분 수정이 불가능하다 (기존 A, B 데이터가 존재할때 C를 PUT 요청하면 A, B는 삭제되고 C로 대체된다) 

- 멱등성을 지닌다 

 

PATCH : 리소스 부분 변경

- 부분 수정이 가능하다 (기존 A, B 데이터가 존재할때 B = C로 대체 후 PATCH 요청하면 A, C가 된다) 

- 멱등성을 지니지 않는다. 

- PATCH메서드를 지원하지 않는 서버도 있다. → POST 사용

 

DELETE : 리소스 삭제

- 리소스를 제거한다. 

- 멱등성을 지닌다.