celina의 이것저것

HTTP와 HTTPS 본문

IT

HTTP와 HTTPS

celinayk 2024. 12. 11. 16:01
반응형

HTTP (Hyper Text Transfer Protocol)

  • 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜
  • 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약
  • 80번 포트 사용
  • 무상태성: 프토토콜에서 클라이언트의 상태를 기억하지 않음, 클라이언트 상태 보관을 위해 쿠키,세션,JWT토큰 등을 이용하여 유지함
  • 비연결성: 처음 연결을 맺은 후 요청과 한번의 응답 이후 연결종료됨, 매 요청마다 다시 연결맺음
  • TCP를 transport 프로토콜로 사용함 

 

Request & Response

 

1. GET

  • 서버에서 데이터를 요청하여 가져온다
  • 요청한 데이터는 서버에서 읽기만 한다
  • 캐싱 가능

 

2. POST

  • 서버에 새로운 데이터를 생성하거나 데이터를 전송
  • 요청 본문(Body)에 데이터를 포함, 일반적으로 데이터 생성 작업에 사용
  • 캐싱 불가능

 

3. PUT

  • 서버에 있는 데이터를 업데이트
  • 기존 리소스를 완전히 대체하거나 생성
  • 요청 본문(Body)에 업데이트 데이터릍 포함
  • 멱등성 보장: 동일한 요청을 여러 번 보내도 결과 동일

 

4. PATCH

  • 리소스의 일부만 수정(PUT은 전체 리소스 대체하지만, PATCH는 부분 수정에 적합)
  • 멱등성은 보장하지 않을 수 있음
  • 요청 본문(Body)에 수정할 데이터릍 포함

 

5. DELETE

  • 서버에서 데이터 삭제
  • 멱등성 보장

 

6. HEAD

  • 서버의 리소스 상태를 확인하기 위해 사용(GET과 동일하지만 응답 본문 없이 헤더만 반환)
  • 리소스의 존재 여부, 크키, 변경 여부 등을 확인할 때 유용

 

7. OPTIONS

  • 특정 리소스가 지원하는 HTTP 메서드를 확인
  • 서버가 어떤 메서드와 기능을 지원하는지 클라이언트에게 제공
  • 주로 CORS(Cross-Origin Resource Sharing) 요청에서 사용

 

 

 

8. TRACE

  • 서버로부터 클라이언트 요청이 서버에 도달하는 경로를 확인(요청이 중간 프록시를 거칠 경우 유용)
  • 디버깅 목적으로 사용
  • 요청을 그대로 반환, 이를 통해 경로를 추적

 

 

 

 

 

 

 

 

 

HTTPS (Hyper Text Transfer Protocol Secure)

  • HTTP에 데이터 암호화가 추가된 프로토콜
  • 443번 포트 사용
  • 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 암호화 지원
  • 대칭키 암호화와 공개키 암호화를 조합하여 작동
  • SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화

 

SSL

  • 클라이언트와 서버간의 통신을 공인된 제3자(CA) 업체가 보증해주는 전자화된 문서

 

SSL에서 사용하는 암호화의 종류

  • 암호 : 텍스트를 아무나 읽지 못하도록 인코딩하는 알고리즘
  • 키 : 암호의 동작을 변경하는 매개변수, 키에 따라서 암호화 결과가 달라지기 떄문에 키를 모르면 복호화가 불가능하다.

대칭키 암호화 방식

  • 인코딩과 디코딩에 같은 키를 사용하는 알고리즘
  • 단점 : 단점은 발송자와 수신자가 서로 대화하려면 둘 다 공유키를 가져야 한다는 것이다.
  • 대칭키를 전달하는 과정에서 키가 유출이 되면 암호의 내용을 복호화할 수 있기 때문에 위험하다
  • 이를 보완하기 위해서 나온 방법이 공개키 암호화 방식이다.

공개키 암호화 방식

  • 인코딩과 디코딩에 다른 키를 사용하는 알고리즘
  • A키로 암호화를 하면 B키로 복호화를 할 수 있고, B키로 암호화 하면 A키로 복호화 할 수 있는 방식
  • 인코딩 키 (public key)는 공개되어 있으며 (그래서 공개키 암호방식이라는 이름이 붙었다.) 보통 디지털 인증서안에 포함되어 있다.
  • 디코딩 키는 (secret key)는 호스트만이 개인 디코딩 키를 알고있다.
  • 공개키와 비공개키의 분리는 메시지의 인코딩은 누구나 할 수 있도록 해주는 동시에, 메시지의 디코딩은 비밀키 소유자에게만 부여한다.
  • 이는 클라이언트가 서버로 안전하게 메시지를 발송하는 것을 쉽게 해준다.
  • 단점 : 공개키 암호화 방식의 알고리즘은 계산이 느린 경향이 있다.

 

 

 

참고

https://opentutorials.org/course/228/4894

 

HTTPS와 SSL 인증서 - 생활코딩

HTTPS VS HTTP HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext 인 HTML을 전송하기 위한 통신규약을 의미한다. HTTPS에서 마지막의 S는 Over Secure Socket Layer의 약자로 Secure라는 말을 통해서 알 수 있듯이

opentutorials.org

https://developer.mozilla.org/ko/docs/Web/HTTP/Messages

 

'IT' 카테고리의 다른 글

로드 밸런싱 Load Balancing  (1) 2024.12.17
Comments