[CS] - 네트워크 2 (HTTP, HTTPS, DNS)

sehannnnnnn·2023년 3월 12일
2

웹 동작 방식

  1. 사용자가 브라우저에 URL을 입력

  2. 브라우저는 DNS 서버를 조회해 서버의 IP정보를 얻어온다

  3. HTTP 프로토콜을 사용해 HTTP 요청 메세지를 생성하고, TCP/IP 연결을 통해 HTTP 요청이 웹 서버로 전송

  4. 서버는 HTTP 프로토콜을 활용해 HTTP 응답 메세지를 생성하고, 요청한 컴퓨터로 전송

  5. 도착한 HTTP 응답 메세지를 해석해 HTML을 화면에 랜더링하여 사용자가 볼 수 있도록 한다

DNS에 대해

  • DNS서버란 도메인 이름을 IP주소로 바꿔주는 역할을 하는 서버입니다. 이로 인해 클라이언트는 IP주소를 기억하지 않고 해당 주소의 웹사이트에 접근할 수 있습니다.

  • 도메인(Domain) : 웹사이트의 위치 (ex, 도메인 이름 google.com은 IP주소 142.250.196.142를 의미)

  • 도메인과 URL의 차이점 : 웹주소인 URL에는 도메인 이름과 전송 프로토콜 및 경로 등의 정보가 포함되어 있습니다.

Root 네임 서버 : DNS 레코드를 요청하는 첫 단계입니다. 비영리 단체인 ICANN(Internet Corporation for Assigned Names and Numbers)이 관리합니다.

TLD(최상위 도메인) 네임 서버 : TLD 네임서버는 .com, .co.kr 과 같은 점 뒤에오는 도메인 확장자를 사용하는 모든 도메인 정보를 유지합니다.

Authoritative 네임 서버 : 실제 도메인의 IP주소가 기록되는 서버입니다. 도메인/호스팅 업체의 '네임서버'를 말합니다.

Recursive(재귀) 네임 서버 : 인터넷 사용자가 가장 먼저 접근하는 DNS 서버로 특정 도메인에 대한 IP정보를 캐시 형태로 저장해놓습니다. 대표적으로 KT/LG/SK 와 같은 ISP(통신사) DNS 서버가 있습니다

HTTP, HTTPS

HTTP

1) HTTP 1.0

  • 단기 커넥션(shrot-live connections) : 요청 날릴때마다 커넥션 맺고 끊어짐
  • Request를 날릴 때마다 Connection을 새로 생성해야 함
  • Data를 압축해서 전달 가능하도록 하여 전달하는 Data 양이 감소
    2) HTTP 1.1
  • 지속 커넥션(Persistent connection) : 커넥션 재사용 가능
  • HTTP 파이프라이닝(Pipelining) : Request를 미리 여러 개 서버에 날릴 수 있음 (이전엔 리퀘스트 하나보내고, Response 받고, 그 다음 request 보내는 방식이었는데, 파이프라이닝 방식에서는 Request를 연속적으로 보내놓고 Reponse를 받는 방식)
  • 단점 : Head Of Line Blocking => 요청한 Request에 문제가 생겨 응답이 늦어지면 그 다음 Request의 응답들도 같이 늦어짐

3) HTTP 2.0

  • Multiplexing : 프레임 단위로 나눠서 전송 관리 가능하게 됨 (다수의 요청과 응답이 가능한 구조)
  • 데이터 전송 방식 : 바이너리로 인코딩하여 전송
  • ServerPush 사용 : 브라우저에서 필요한 리소스들을 서버가 알아서 찾아다가 내려주는 것
    캐싱되지 않은 리소스를 받아올 때
    페이지에서 필요한 리소스가 페이지를 내려주는 서버에 있을 때

HTTPS

  • HTTPS(Hypertext Transfer Protocol Secure)

  • 둘 다 웹 통신 프로토콜이지만, HTTPS는 HTTP의 기능에 TLS(Transport Layer Security) 혹은 SSL(Secure Sockets Layer)을 사용하여 암호화된 버전입니다. 일반적으로 보안이 중요한 통신에서는 HTTPS를 사용하는걸로 알고있고, HTTP는 80 port, HTTPS는 443 port를 사용하는 것으로 알고 있습니다.

profile
FE 개발자 준비생 블로그 🪐

0개의 댓글