[네트워크] HTTP

opixxx·2024년 3월 8일
0

네트워트

목록 보기
5/14

이 글은 보초님 깃허브 레포를 참고해서 공부한 글입니다

HTTP 란?

HTTP 는 Hyper Text Transfer Protocol 의 약자이며, 처음에는 서버와 브라우저간에 데이터를 주고 받기 위해 설계된 프로토콜이다. 지금은 서버와 서버간의 통실할 때도 많이 이용한다.

HTTP 의 특징

1. Stateless

클라이언트의 state 를 유지하지 않는다.

  • 장점 : 서버 확장(Scale out) 의 용이하다.
  • 단점 : 클라이언트가 추가 데이터를 전송해야한다.
    • 쿠키, 세션, 토큰 등을 이용해서 state 를 유지한다.

2. Connectionless

Connection Oriented (연결을 유지하는 모델)

  • TCP/IP 의 경우 기본적으로 연결을 유지한다.
  • 클라이언트가 요청을 보내지 않더라고 계속 연결을 유지해야한다.
  • 연결을 유지하는 서버의 자원이 계속 소모된다.

Connectionless (연결을 유지하지 않는 모델)

  • 요청을 추고 받을 때만 연결을 유지하고 응답을 주고나면 TCP/IP 연결을 끊는다.
    • 위 특징으로 초 단위 이하의 빠른 속도로 응답할 수 있으며, 트래픽이 많은 서비스를 이용해도 실제 서버 동시 처리 요청은 수십개 이하로 매욱 작다.
  • 최소한의 자원으로 서버 자원을 사용한다.

Connectionless 의 한계

  • TCP/IP 연결을 새로 해야하므로 3 way handshake 시간이 추가가 되어 클라이언트 입장에서 속도가 느려진다.
  • 웹 브라우저로 사이트를 요청하면 HTML,CSS,Javascript, 추가 이미지 등 많은 자원이 함께 다운로드할 때 연결을 끊고 연결을 계속 반복하면 비효율적이다.

Connectionless 의 극복

기본적으로 Persistence Connection 으로 문제 해결한다. HTTP/2, HTTP/3 에서 더 많은 최적화되어 있다.

공개키와 대칭키에 대해 설명해 주세요.

대칭키 암호화 방식

대칭키 암호화 방식은 키를 하나만 사용하는 암호화 방식이다.
해당 키를 아는 사람만이 문서를 복호화해 볼 수 있다.
대표적인 알고리즘으로 DES, AES가 있습니다.

장단점

속도가 빠르다는 장점이 있지만, 키를 교환해야한다는 문제가 있다. 키를 교환하다 키가 탈취될 수 있는 문제가 있고, 사람이 증가할수록 사람마다 키교환을 해야하기 때문에 관리해야 할 키가 많아진다.

공개키 암호화 방식

두개의 다른 키 (공개키, 개인키) 로 데이터를 암호화하거나 서명하고 키 중 하나인 공개 키를 누구나 사용할 수 있도록 하는 방법이다.
공개키로 암호화된 데이터는 개인키로만 복호화 할 수 있다.
일반적으로 사용되는 비대칭 암호화 알고리즘은 RSA, DH가 있다.

장단점

공개키는 키가 공개 되어있기 때문에 키교환이나 키를 분배를 할 필요가 없다. 중간에 공개키를 탈취 당하더라고 개인키로만 복호화가 가능하기 때문에 보안이 좋다. 하지만 속도가 느리다는 단점이 있다.

왜 HTTPS Handshake 과정에서는 인증서를 사용하는 것 일까요?

인증 : 클라이언트에게 서버의 신원을 확인하는 수단을 제공할 수 있다.
암호화 : 인증서에는 공개키가 포함되어 있어 대칭키를 암호화 할 수 있다.
무결성 : 인증서는 고유한 서명을 생성하여 통신중에 변조되거나 수정되지 않았음을 확인할 수 있다.
신뢰: 클라이언트가 서버에 대한 신뢰를 구축할 수 있다.

SSL과 TLS의 차이는 무엇인가요?

SSL 과 TLS 는 HTTPS 통신에 사용되는 암호화 프로토콜이다.

SSL

1990 년대 사용되던 프로토콜 이었으나 취약점이 발견되어 현재는 사용되지 않음

TLS

SSL 1.0, SSL 2.0, SSL 3.0, TLS 1.0, TLS 1,3 까지 버전이 올라가며 마지막으로 TLS 로 명칭이 변경되었다.
전송 계층에서 보안을 제공하는 프로토콜이다. 클라이언트와 서버가 통신할 때 TLS 를 통해 제 3자가 메시지를 도청하거나 변조하지 못하도록 한다.

profile
개발공부저장소

0개의 댓글

관련 채용 정보