[테크 톡 - 10주차] HTTPS

728x90

📌HTTP

  • HyperText Protocol : 서버-클라이언트 메세지 교환 프로토콜
    서버와 클라이언트 간의 TCP/IP 통신 위에서 메세지를 교환하기 위해 사용되는 프로토콜
  • 서버에서 브라우저로 데이터를 전송하는 정보가 암호화 되지 않는다는 문제점을 가지고 있어 데이터가 쉽게 도난당할 수 있음

 

◾ 기기 간 통신 과정

  • 클라이언트가 리소스를 HTTP를 통해 요청하면 TCP, IP, 프로토콜을 걸쳐 서버 쪽의 HTTP까지 요청 도달 이에 대한 응답을 다시 서버에서 HTTP 로 보내면 TCP, IP, 프로토콜을 걸쳐 클라이언트에게 응답 도달

 

◾ 네트워크 단어 정리

  • 프로토콜 : 서로 다른 하드웨어 기기가 통신하기 위해 필요한 규칙
  • TCP : 서버와 클라이언트 사이 통신 연결 제어
  • IP : 데이터 패킷들을 보낸다.
  • ARP : Address Resolution Protocol 주소를 찾아가는 프로토콜
  • DNS : Domain Name System 도메인 이름 및 IP 주소 확인
    도메인 이름을 IP주소로 변환 및 도메인 이름을 웹 브라우저에 입력 할 때 최종 사용자를 어떤 서버에 연결 할 것인지 제어
  • URL : 웹페이지 상의 주소
  • URI : URL을 포괄하는 개념으로 리소스를 식별하는 식별자
  • Request : 요청
  • Response : 응답메세지

 

◾ HTTP 프로토콜 구성

🔸 Request

  • 구성 : 메서드 URI 프로토콜 버전, 헤더, 바디

 

🔸 Response

  • 구성 : 프로토콜 버전, 상태코드, 상태 코드에 대한 설명, 헤더, 바디로 구성

 

◾ HTTP 프로토콜 특성

  • Stateless : 과거정보를 남기지않고 새로운 리퀘스를 보낼 때마다 새로운 리스폰스를 보낸다. 상태와 무관하여 확장이 쉽다.
  • URI로 리소스 식별
  • 지속 연결 : 서버의 부하를 줄이고 빠른 통신, 리스폰스 응답을 기다리지않고 바로 다음 리퀘스트를 보내는 파이프라이닝 가능
  • 성능향상이 미미하고 프록시 버그가 많음

 

📌HTTPS

  • Hypertext Transfer Protocol
  • 서로 다른 시스템들 사이에서 통신을 주고받게 하는 가장 기본적인 프로토콜
  • 서버에서 브라우저로 데이터를 전송하는 용도로 가장 많이 사용함
  • HTTP에 SSL을 사용한 것
  • SSL : 보안 소켓 계층. 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고 정보가 도난 당하는 것을 막아줌
    → HTTP 자체를 암호화 하는 것이 아니라 메세지 바디를 암호화 (헤더는 암호화 되지 않음)

 

◾ HTTP를 사용하는 이유

1. 보안성

  • 데이터를 암호화 해서 전송하기 때문에 해커가 중간에 가로채더라도 어떤 내용인지 알 수 없음

2. 검색 엔진 최적화

  • 구글은 HTTPS 웹 사이트 가산점을 줌

 

◾ SSL

  • Natscape 사에서 웹 서버와 웹 브라우저간의 보안을 위해 만든 프로토콜
  • 공개키 방식과 대칭키 방식을 혼합하여 사용
    → 각 방식이 가진 단점 때문에 두 방식을 적절히 섞어 사용
  • 암호화의 대상은 비밀번호나 개인정보 등이 해당 됨

🔸 통신과정

  • 공개키 방식으로 대칭키를 전달
  • 대칭키를 활용하여 암호화, 복호화하여 서버와 브라우저 간 통신 진행
728x90