ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2022.05.25 이론공부
    Web/etc. 2022. 5. 25. 08:52

    1. Client Server

    클라인언트 : 다른 프로그램에게 서비스를 요청하는 프로그램

    서버 : 그 요청에 응답하는 프로그램

     

    Q ) 백엔드도 클라이언트가 될 수 있냐?

          : 될 수 있다. 클라이언트 - 서버 - 백엔드 - DBMS 관계에서 백엔트와 DBMS 관계에서는 백엔드가 클라이언트다.

     

    추가 )

    출처 : https://zzinise.tistory.com/6

    클라이언트는 서버에게 요청

    -> 서버는 클라이언트가 요청한 것을 백엔드(백엔드 언어)에게 전달

    -> 백엔드 언어는 로직에 맞춰 DBMS으로 부터 필요한 데이터를 얻는다.

     

     * 서버와 클라이언트는 역할의 개념이며, 서버는 서버의 역할만 할 수 있는게 아니라 하는 일에 따라 클라이언트가 될 수 도 있다.

     

    2. 3way handshake

    : TCP를 이용한 데이터 통신을 할 때 프로세스와 프로세스를 연결하기 위해 가장 먼저 수행되는 과정

         1. 클라이언트가 서버에게 요청 패킷( SYN )을 보내고

         2. 서버가 클라이언트의 요청을 받아들이는 패킷( SYN + ACK )을 보내고

         3. 클라이언트는 이를 최종적으로 수락하는 패킷( ACK )을 보낸다.

    위의 3개 과정을 3Way Handshake라고 부른다.

    - 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기전에 한쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 한다.

     

     

    * 패킷 : 컴퓨터 네크워트가 전달하는 데이터의 형식화된 블록

              - 제어정보와 사용자 데이터로 이루어지며, 이는 페이로드라고 부른다.

              - 데이터가 패킷으로 형식이 바뀔 때, 네트워크는 장문 메시지를 더 효과적으로 신뢰성있게 보낸다.

    * SYN - Synchronize / ACK - Acknowledgment

     

     

    3. tls handshake

    : 3way handshake + SSL + RSA 느낌?

     

    TLS  핸드셰이크
    1. 클라 → 서버 : 헬로 ( 클라 무작위 )
    2. 서버 → 클라 : 헬로응답 ( SSL 인증서 + 서버 무작위 )
    3. 클라 : SSL 인증서 검증 → 서버 확인
    4. 클라 → 서버 : 예비 마스터 암호 ( 공개키로 암호화 ) ( 클라는 SSL 인증서를 통해 공개키 획득 )
    5. 서버 : 예비 마스터 암호해독
    6. 클라 and 서버 : 클라 무작위 + 서버 무작위 +예비 마스터 암호 = 세션 키
    7. 서버 → 클라 : 세션키로 "완료" 메시지
    8. 클라 → 서버 : 세션키로 "완료" 메시지
    9. 핸드셰이크 완료, 세션 키로 통신진행 

        

    참고 자료 : https://www.cloudflare.com/ko-kr/learning/ssl/what-happens-in-a-tls-handshake/

     

    4. 웹동작

    웹브라우저 요청 흐름

    0. 도메인주소로 DNS 조회 → IP와 PORT를 찾아냄 (목적지)

    1. 웹 브라우저가 HTTP 메세지 생성

    2. SOCKET 라이브러리를 통해 전달

        ㆍ TCP/IP 연결 ( IP, PORT )

        ㆍ 데이터 전달

    3. TCP/IP 패킷 생성, HTTP 메세지 포함

    4. 요청패킷전달 → 도착 시 TCP/IP 패킷을 버리고 HTTP 메세지 해석

    5. 서버에서 HTTP 응답메시지 생성 후 응답패킷 전달

    6. 웹브라우저 HTML렌더링

    'Web > etc.' 카테고리의 다른 글

    2022.05.26 이론공부  (0) 2022.05.26

    댓글

Designed by Tistory.