Computer Science/Network

    HTTP, HTTPS

    HTTP, HTTPS

    HTTP HTTP는 Hyper Text Transfer Protocol로서 클라이언트(웹 브라우저)와 서버가 데이터를 주고받기 위한 통신 규약을 의미한다. HTTP는 단어 그대로 텍스트를 클라이언트와 서버 간 교환하기 때문에 몇 가지 문제가 발생한다. 서버에 보내는 정보가 노출되어 중간에서 제 3자가 탈취할 수 있다. 아이디, 비밀번호와 같이 민감한 정보를 보내는 경우 제 3자가 해당 데이터를 탈취한다면 문제가 발생한다. 제 3자가 데이터를 탈취할 수 있다면 변조 또한 가능하다. 요청한 사이트가 믿을 만한 사이트인지 진위여부를 판단할 수 없다. HTTPS HTTP + Secure가 HTTPS이다. 즉 HTTP에서 발생하는 보안 이슈들을 보완해서 안전하게 서버와 데이터를 주고받을 수 있다. 서버에 보내는 ..

    3-Way-Handshake, 4-Way-Handshake

    3-Way-Handshake, 4-Way-Handshake

    3-Way-Handshake와 4-Way-Handshake는 각각 TCP가 서로의 연결을 논리적으로 성립시키고 해제 시키는 과정을 의미한다. 3-Way-Handshake TCP는 서버와 클라이언트 사이에 데이터를 전송하기 위해 데이터 전송 전 서로의 연결을 3가지 단계를 이용해 성립시킨다. 연결하고자 하는 A가 B에게 연결 요청을 한다. B는 연결요청을 받았으니 A에게 연결 요청을 수락한다는 응답과 연결 요청을 보낸다. A는 B의 연결 요청을 수락한다는 응답을 B에게 보낸다. 각 단계를 구체적으로 알아보자. 연결하고자 하는 A가 B에게 연결 요청을 한다. 클라이언트 A는 서버 B와 연결을 하고싶다. 클라이언트 A는 연결하고자 하는 서버 B에게 연결을 요청하는 SYN 패킷을 전송한다. 연결이 없던 클라이언..

    TCP, UDP

    TCP, UDP

    IP 프로토콜은 서버간 데이터 통신을 할 때 패킷과 IP 주소를 이용한다. IP 프로토콜은 몇 가지 한계를 갖고 있다. 출발지 IP에서 보낸 패킷을 받을 대상이 없거나 목적지 IP 서버가 현재 패킷을 받을 수없는 상태이더라도 출발지 IP 서버는 패킷을 보내버린다. 또한, 하나의 데이터는 여러 개의 패킷으로 쪼개질 수 있고, 이 패킷들은 인터넷 내의 많은 노드들을 거쳐 목적지 IP에 도달하는데 거쳐가는 노드가 패킷을 보낼 수 있는 상태가 아니거나, 설령 목적지 IP에 도착하더라도 여러개로 쪼개진 패킷이 순서대로 들어온다는 보장이 없다. 마지막으로, 동일 IP에서 여러가지 애플리케이션을 사용한다면 전송되는 패킷이 어떤 애플리케이션 것인지 구분하는 것이 어렵다. 전송 계층은 이러한 IP 프로토콜의 비연결성, ..

    CORS (Cross Origin Resource Sharing)

    CORS (Cross Origin Resource Sharing)

    프론트엔드와 백엔드 간 API 통신을 하다보면 CORS 에러가 발생하는 것을 심심찮게 확인할 수 있다. CORS는 무엇일까? CORS를 이해하려면 SOP (Single Origin Policy)에 대한 이해가 선행되어야 한다. SOP (Single Origin Policy) 영어를 그대로 직역하면 하나의 출처 정책, 즉 하나의 출처에서 온 리소스만 허용하고, 다른 출처의 리소스를 사용하는 것을 제한하는 보안 정책이다. 여기서 출처란 URL에서 프로토콜, 호스트, 포트를 합친 것을 의미한다. 예를 들어, https://localhost:443/test라는 URL에서 https://localhost:443이 출처가 된다. 만약 http://localhost/test라는 URL 요청이 들어오는 경우 https..