쿠키란? 서버가 어떤 데이터를 브라우저 측에 저장한 후 다시 그 데이터를 받아오는 기술 쿠키 헤더의 속성에 대해 설명 유효기간의 명시 session 쿠키: 유효기간이 별도로 명시되지 않은 쿠키. 브라우저의 세션이 종료될 때(탭 닫을 때) 함께 만료됨 permanent 쿠키: 유효기간이 명시되어있는 쿠키 Set-Cookie: =; Expires=종료 시점 Set-Cookie: =; Max-Age=유효 기간 쿠키의 범위 제한 Domain: 서브 도메인까지 포함되도록 쿠키의 범위가 확장된다. Path: 쿠키의 범위를 해당 도메인의 특정 경로로 축소시킬 수 있다. 보안 속성 Secure: Set-Cookie 응답 헤더에 이 속성이 명시된 쿠키는 브라우저가 https 프로토콜 상에서만 서버로 돌려 보냄. 네트워크..
Computer Science/Network

Proxy 서버 클라이언트와 서버간의 중계 서버로, 통신을 대리 수행하는 서버를 의미함. 캐시, 보안, 트래픽 분산 등 여러 장점을 가질 수 있다. Forward Proxy 일반적인 프록시 설정을 의미함 인터넷과 클라이언트 사이에 위치함 로컬 네트워크와 인터넷 사이 오가는 트래픽을 제어할 수 있음 ex) 학생들의 부적절한 접속을 방지하기 위해 이런 식으로 방지할 수 있음 ex) 인터넷 속도를 향상시키기 위해 Proxy 설정을.. 외국에서 접속하는 것처럼 테스트하기 위해 Proxy 설정을.. 개인정보를 빼돌린 해커는 IP 추적을 방지하기 위해 Proxy 설정을.. 특징 캐싱(서버에서 받아온 날씨 정보를 캐싱하고 있음..) 전송 시간 절약 불필요한 외부 전송 X 외부 요청 감소 → 네트워크 병목 현상 방지 ..

Web Server HTTP, HTTPS를 지원하는 서버 정적 리소스를 서포트하기 위한 서버 Web Application Server(WAS) ex) tomcat, jetty DB 조회, 비지니스 로직 수행 등등 동적 리소스를 지원한다. Java에서는 web Container 혹은 Servlet이라고 부른다. ‘web server 기능도 같이 한다’ 는 얘기지 nginx, apache 등등을 말하는 것이 아니다. 차이점 web 서버는 정적 리소스를 지원하거나 proxy 기능을 하고, was 서버는 db 조회, 비지니스 로직 수행 등의 동적 리소스를 지원한다. WAS 앞 단에 Web Server를 배치하여 정적 리소스(public하게 노출되어도 상관 없는 것) 및 proxy 기능을 제공 WAS는 인증, 인..

정의 Domain Name System의 약자. 도메인 네임과 ip 주소를 메핑 시켜서 갖고 있는 시스템. 동작 과정 브라우저에서 요청 브라우저 캐시를 조회해보고 있으면 반환 사용하고 있는 isp에 해당 도메인에 메핑되어있는 ip 주소를 요청한다. 마찬가지로 캐시를 조회해 있으면 반환 root dns와 tld, 도메인 제공 업체를 recursive하게 조회하여 ip 주소를 얻어온다.

동작원리 https를 통한 인터넷 접속은 SSL(TLS)이라는 보안 프로토콜을 통해 보안이 향상된 통신을 하는 것이다. SSL과 TLS는 응용계층과 전송계층 사이에 존재하는 또 하나의 독립적인 프로토콜 계층임. HTTPS는 SSL 또는 TLS 위에 HTTP 프로토콜을 얹어 보안된 HTTP 통신을 하는 프로토콜이다(http + ssl). 즉, SSL과 TLS는 HTTP 뿐만 아니라 FTP, SMTP와 같은 다른 프로토콜에도 적용될 수 있다(FTPS, SMTPS). 동작 흐름 공개키 암호화 방식과 대칭키 암호화 방식의 장점을 활용해 하이브리드 활용 데이터를 대칭키 방식으로 암복호화하고, 공개키 방식으로 대칭키를 전달 애플리케이션 서버(A)를 만드는 기업은 HTTPS를 적용하기 위해 공개키와 개인키를 만든다...
HTTP 특징 클라이언트-서버 구조 무상태 프로토콜 stateful: 서버가 상태를 유지함. 중간에 서버가 바뀌면 문제가 생김 stateless: 서버가 상태를 유지하지 않음. 스케일 아웃(수평 확장)에 유리 비연결성 TCP 와는 달리 HTTP는 기본적으로 연결을 유지하지 않는 모델 서버의 자원을 매우 효율적으로 사용할 수 있음 한계 매번 TCP/IP 연결을 새로 맺어야 함. 한 사이트를 요청하면 HTML 외에도 많은 자원을 함께 다운로드함 → 자원을 받을 때마다 connection을 맺으면 느림 현재는 HTTP 지속 연결(Persistent Connection)으로 문제 해결 HTTP 헤더에 대해.. General 헤더: 메시지 전체에 적용되는 정보 Connection Request 헤더: 요청 정보 ..

흐름제어(Flow Control) 데이터를 송신하는 쪽과 수신하는 쪽의 데이터 처리 속도를 조절하여 수신 쪽 버퍼 오버플로우를 방지하기 위한 것 Stop and Wait: 매번 전송한 패킷에 대해 확인 응답을 받아야만 그 다음 패킷을 전송하는 방법 Sliding Window: 수신측에서 설정한 윈도우 크기(단위 시간 내에 보내는 패킷의 수)만큼 송신측에서 확인응답 없이 세그먼트를 전송할 수 있게 하는 방식 혼잡제어(Congestion Control) 송신측의 데이터 전달 속도와 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법 네트워크 혼잡: 네트워크 상에 패킷의 수가 넘치게 많아지는 상황 Slow start 패킷을 하나씩 보내면서 시작하고, 패킷이 문제없이 도착하면 각각의 ACK 패킷마다 wind..

TCP는 신뢰성을 보장하는 연결형 프로토콜이므로, 장치들 사이에 논리적인 접속을 성립(establish)하는 ‘연결’을 설정한다. 3-way-handshake 정확한 데이터 전송을 위해 연결을 성립하는 과정(connection establish) 클라이언트(A) → 서버(B) A -> B: SYN 접속 요청 프로세스 A가 연결 요청 메시지 전송 (SYN) 송신자가 최초로 데이터를 전송할 때 Sequence Number를 임의의 랜덤 숫자로 지정하고, SYN 플래그 비트를 1로 설정한 세그먼트를 전송한다. PORT 상태 - B: LISTEN, A: CLOSED B -> A: SYN + ACK 접속 요청을 받은 프로세스 B가 요청을 수락했으며, 접속 요청 프로세스인 A도 포트를 열어 달라는 메시지 전송 (S..

TCP 데이터를 세그먼트 단위로 보내는 연결형 서비스. 속도는 느리지만 높은 신뢰도를 갖고 있다. 가상 회선 방식 사용 흐름 제어, 혼잡 제어, 오류 제어 등을 사용 높은 신뢰성 보장 UDP 보다 느림 전이중(전송이 양방향으로 일어날 수 있음), 점대점(각 연결이 정확히 2개의 종단점을 가짐) 멀티캐스팅이나 브로드캐스팅을 지원하지 않음 UDP 데이터를 데이터그램 단위로 보내는 비연결형 서비스. 속도는 빠르지만 신뢰도가 낮다. 신뢰성이 낮다. TCP 보다 빠르다. UDP는 왜 사용할까? 데이터의 신속성 연결을 위한 오버헤드가 없다. 실시간 스트리밍, DNS, HTTP 3 DNS에 UDP가 사용되는 이유 TCP가 3-way handshake를 사용하는 반면, UDP는 connection 을 유지할 필요가 없..

OSI 7계층 네트워크에서 통신이 일어나는 과정을 쉽게 파악하기 위해 계층화 시켜놓은 것 응용 : 최종 목적지, 응용프로그램과 연관하여 서비스 수행 ex) HTTP, FTP, DNS 표현 : 데이터 표현에 대한 독립성을 제공하고 암호화. 사용자 시스템에서 데이터가 올바르게 표현 ex) JPEG, MPEG 세션 : 데이터가 통신하기 위한 논리적 연결 담당 ex) API, Socket 전송 : 통신을 활성화 ex) TCP, UDP 네트워크 : 데이터를 목적지까지 전달, 라우터로 경로를 선택해 IP 지정, 경로에 따라 패킷 전달 ex) 라우터, IP 데이터링크 : 물리 계층으로 송수신되는 정보 관리, Mac 주소로 통신 ex) 브릿지, 스위치 물리 : 데이터 전송 ex) 리피터, 케이블, 허브 TCP/IP 4..