computerScience

cookie와 session
cookie와 session HTTP는 비상태성(Stateless) 프로토콜로 상태 정보를 유지하지 않는다. 연결을 유지하지 않기 때문에 리소스 낭비가 줄어드는 것은 큰 장점이지만 통신할 때마다 매번 연결 설정을 해야 하며, 이전 요청과 현재 요청이 같은 사용자의 요청인지 알 수 없다는 단점이 존재한다. 쿠키와 세션을 통해서 HTTP의 Stateless한 문제점을 해결할 수 있다. cookie와 session 비교 [저장 위치] 쿠키 : 클라인어트의 웹 브라우저가 지정하는 메모리 or 하드 디스크 세션 : 서버의 메모리 [만료 시점] 쿠키 : 저장할 때, expires 속성을 정의하여 무효화시키면 삭제될 날짜를 지정할 수 있다. 세션 : 클라이언트가 로그아웃하거나 설정 시간 동안 반응이 없으면 무효화되기..

REST & RESTful
REST & RESTful이란? REST란 Representational State Transfer의 약자로 웹의 장점을 최대한 활용할 수 있는 Client와 Server 간 통신 방식 중 하나이다. 설계 기본 규칙으로 HTTP URI를 통해 자원을 명시하고 HTTP method(GET, POST, PUT, DELETE)를 통해 자원을 처리하도록 설계된 아키텍처이다. RESTful은 REST라는 아키텍처를 구현하는 웹 서비스를 나타내는 것으로 REST 원리를 따르는 시스템을 RESTful이라는 용어로 지칭한다. HTTP란? HyperText Transfer Protocal의 약자로써 인터넷 통신을 위해 사용되는 프로토콜이다. HTTP 동작 Client가 브라우저를 통해 URI을 통해 특정 요청(Reque..

대칭키와 암호화
대칭키 암호화 암호화에 사용되는 키와 복호화에 사용되는 키가 동일한 암호화 기법이다. 대칭키 암호 방식으로 암호화한 정보를 누군가에게 보낼 때, 암호키도 함께 보내야 한다. 암호키 자체는 암호화가 되지 않은 평문으로 분실하거나 타인에게 노출되면 보안에 매우 취약할 수 있다. 키 전달 및 관리에 어려움이 있지만, 대칭키 암호화 방식은 암호화 연산 속도가 빠르기 때문에 효율적인 암호 시스템을 구축할 수 있다는 장점이 있다. 블록 암호화, 스트림 암호화가 있다. 공개키 암호화 대칭키 암호화 방식의 키 전달의 취약점을 해결하기 위해 나온 방식이다. 암호화에 사용하는 키와 복호화에 사용하는 키를 분리했다. 따라서 비대칭키 암호화라고도 부른다. 자신이 가지고 있는 고유한 암호키(개인키 혹은 비밀키)로만 복호화할 수..

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) 패킷을 보낸다. 클라이언..

UDP
UDP UDP를 해석하면 사용자 데이터그램 프로토콜(규약)이라는 뜻으로 데이터를 데이터그램 단위로 처리하는 프로토콜으로 풀어 사용할 수 있다. 여기서 데이터그램이란 독립적인 관계를 지니는 패킷이라는 뜻으로, UDP의 동작방식을 설명하자면 다음과 같다. 위에서 대충 눈치채셨듯이 TCP와 달리 UDP는 비연결형 프로토콜이다. 즉, 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 되는데 이렇게 데이터를 서로 다른 경로로 독립적으로 처리하게 되고, 이러한 프로토콜을 UDP라고 합니다. UDP 특징 비연결형 서비스로 데이터그램 방식을 제공한다 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다. UDP헤더의..