Network

    HTTP와 HTTPS

    HTTP 웹 서버와 클라이언트 간의 문서를 교환하기 위한 통신 규약 웹에서만 사용하는 프로토콜로 TCP/IP 기반으로 서버와 클라이언트 간의 요청과 응답을 전송한다. HTTP의 특징 TCP 기반의 통신 방식 비연결 지향 브라우저를 통해 사용자의 요청으로 서버와 접속하여 요청에 대한 응답의 데이터를 전송후, 연결을 종료한다. 간단하기 때문에 자원이 적게드는 장점이 있다. 하지만, 연결이 지속적이지 않기 때문에 사용자와 연결 종료후 추가적인 요청시 어떤 사용자의 요청인지 모른다는 점이 존재한다. 즉, 여러 사용자가 요청할 시 각각의 사용자 요청을 구분할 수 없어서 제대로 된 응답 데이터를 전송할 수 없다는 단점이 있다. 해결 방법으로는 쿠키, 세션, 히든 폼 필드 등이 있다. 단방향성 사용자의 요청 한개에 ..

    3-handshake와 4-handshake

    3-handshake와 4-handshake는 TCP/IP 프로토콜을 이용하여 통신할 때 사용되는 방식이다. 해당 방식들은 각각 통신을 연결할 때와 연결을 끊을 때 사용된다. 아래 설명을 통해 이 두 방식을 이해해보자. 3 way handshake TCP/IP 프로토콜을 이용하여 통신을 진행할 때, 두 종단 간 정확한 데이터 전송을 보장하기 위해 연결을 설정하는 과정이다. 연결 과정 SYN : Synchronize Sequence Number ACK : Acknowledgement 클라이언트는 서버에 접속을 요청하는 SYN(a) 패킷을 보낸다. 서버는 클라이언트의 요청인 SYN(a) 패킷에 대한 요청 수락 응답으로 ACK(a+1) 패킷과 클라이언트도 포트를 열어달라는 SYN(b) 패킷을 보낸다. 클라이언..

    TCP

    TCP 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리한다. 신뢰성 있는 데이터 전송을 지원하는 연결 지향형 프로토콜이다. 사전에 3-way handshake라는 과정을 통해 연결을 설정하고 통신을 시작한다. 4-way handshake 과정을 통해 연결을 해제(가상 회선 방식)한다. 흐름 제어, 혼잡 제어, 오류 제어를 통해 신뢰성을 보장한다. 그러나 이 때문에 UDP보다 전송 속도가 느리다는 단점이 있다. 데이터의 전송 순서를 보장하며 수신 여부를 확인할 수 있다. TCP를 사용하는 예로는 대부분의 웹 HTTP 통신, 이메일, 파일 전송에 사용된다. TCP가 가상회선 방식을 제공한다는 것은 송신측과 수신측을 연결하여 패킷을 전송하기 위한 논..