이론/네트워크

    HTTP 와 HTTPS

    HTTP HTTP 프로토콜이란 웹 상에서 데이터를 주고 받기 위해 사용되는 애플리케이션 레벨 프로토콜로 TCP/IP 위에서 작동합니다. 크게 아래와 같은 3가지 특징을 가집니다. 서버-클라이언트 구조 클라이언트에서 요청을 보내면 서버에서 그것에 대한 응답을 보내는 구조입니다. 비연결성 클라이언트와 서버가 연결을 맺은 후, 서버가 응답을 마치면 연결을 끊어버립니다. 장점 하나의 클라이언트가 요청을 지속적으로 보내는 경우는 잘 없습니다. 그렇기에 연결을 유지한다면 많은 리소스가 낭비됩니다. 비연결성을 통해 연결하는데 필요한 리소스를 아껴 더 많은 클라이언트와 연결할 수 있습니다. 단점 매번 TCP/IP 연결을 새로 맺어야합니다. 무상태 서버가 클라이언트의 상태를 보존하지 않습니다. 장점 상태를 유지하지 않기..

    세션 인증 방식과 토큰 인증 방식

    세션 인증 방식 사용자의 인증 정보가 서버의 세션 저장소에 저장되는 방식. 사용자가 로그인을 하면 해당 정보를 서버 세션 저장소에 저장하고 사용자에게는 세션 저장소의 식별자로 세션 id 를 발급한다. 인증 이후 매 요청마다 쿠키에 세션 id를 담아서 요청한다. 서버는 세션 id 에 해당하는 정보가 세션 저장소에 있으면 인증된 사용자로 판단한다. 토큰 인증 방식 토큰 인증 방식은 인증 정보를 클라이언트 측에서 가지고 있는 방식임. 인증 정보가 브라우저의 로컬 스토리지에 저장됨. 사용자가 가지고 있는 토큰을 http 헤더의 Authorization에 담아 보낸다. 서버는 이 헤더를 확인 후 토큰이 위변조, 만료되었는지 확인하고 판단한다. 세션 인증 방식 vs 토큰 인증 방식 안전성 세션의 경우 모든 정보를 ..

    TCP handshake 란?

    등장 배경 IP 프로토콜 만으로는 통신자들 간의 연결상태를 알지 못함. 중간에 데이터가 소실되거나 데이터의 순서가 잘못되어도 알 수 있는 방법이 없음. TCP 3 way handshake 의 단계 연결을 초기화할 때 거치는 과정 SYN: 클라이언트가 서버와 연결하기 위해 커넥션을 보낸다. SYN+ACK: 서버가 클라이언트가 보낸 SYN 을 받고 받았다는 ACK 과 함께 SYN 을 보낸다. ACK: 다시 클라이언트에서 서버가 보낸 SYN 을 받고 ACK 을 보낸다. 이 과정을 통해 클라이언트와 서버 모두 통신할 준비가 되었다는 것을 서로가 확인할 수 있다. 4 way handshake 의 단계 종료하기 위해 수행되는 과정 클라이언트 FIN-WAIT: 클라이언트가 연결을 종료하겠다는 FIN 신호를 보내고 F..