본문 바로가기

CS/네트워크7

[네트워크] Cookie & Session & Token Cookie와 Session이 등장한 배경 HTTP프로토콜은 클라이언트에 대한 요청만 응답하고 연결을 끊어버리는 비연결성 프로토콜이다. 이런 Stateless 특징을 해결하기 위해 쿠키와 세션이 등장했다. 세션과 쿠키의 차이점은 사용자의 상태 정보가 어디에 저장되어 있느냐이다. Cookie란? 쿠키란 클라이언트의 로컬에 저장되는 키-값이 들어있는 작은 데이터 파일을 의미한다. 유효 시간을 지정할 수 있으며, 쿠키의 유효 시간이 남은 경우 브라우저가 종료되도 스토리지에 남아있다. 팝업, 자동 로그인, 장바구니 등의 기능을 구현할 때 쿠키를 사용한다. 쿠키 동작 방식 클라이언트가 페이지를 요청 서버에서 쿠키를 생성 HTTP 헤더에 쿠키를 포함 시켜 응답 브라우저에서 쿠키를 저장 쿠키가 존재하면 요청을 할 경.. 2021. 8. 31.
[네트워크] DNS란? DNS(Domain Name System)란? 사람이 읽을 수 있는 도메인 이름(www.naver.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환해주는 해주는 서비스를 의미한다. DNS 동작방식 웹사이트의 데이터가 저장되어 있는 호스팅 서버는 인터넷 회선이 연결된 컴퓨터/장치인지라 IP 주소가 할당되어 있고 이 주소가 실제 웹사이트 주소라 할 수 있다. DNS 서버는 이런 IP 주소를 특정 도메인 주소와 같다는 기록을 저장해두고, 인터넷 사용자들이 도메인 주소를 검색했을 때 IP 주소로 연결되도록 해준다. 사용자가 브라우저에서 Nesite.com을 검색 → DNS 서버로 도메인 주소가 전달 → DNS 서버 내부에서 도메인 주소를 토대로 “Nesite.com = 12.123.1.. 2021. 8. 31.
[네트워크] REST API란? REST API란 REST기반으로 서비스 API를 구현한 것이다. 그렇다면, REST가 무언인지 부터 먼저 알아보자. REST(Representational State Transfer)의 구성요소 1. 자원 : URI 이름 붙일수 있는 정보라면 어떤것이든 자원이라고 함 모든 자원에 고유한 id가 존재하고 이 자원은 서버에 존재 자원을 구별하는 ID는 /groups/:group_id와 같은 HTTP URI다 2. 행위 : HTTP Method HTTP프로토콜의 Method를 사용 HTTP 프로토콜은 GET, POST, PUT, DELETE과 같은 메서드를 제공 3. 표현 Client가 자원의 상태에 대한 조작을 요청하면 Server는 이에 적절한 응답을 보냄 REST에서 하나의 자원은 JSON, XML 등.. 2021. 8. 31.
[네트워크] HTTP vs HTTPS HTTP (HyperText Transfer Protocol) 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약으로 비연결성 프로토콜이다. REQUEST에 대한 RESPONSE만 전달이 되고 연결을 유지하지 않는다. 이러한 비연결성을 해결하기 위해 Cookie에 클라이언트에 대한 정보를 저장해뒀다가 사용하거나 Session을 등록해서 유지하는 방식으로 많이쓴다. HTTP 문제점 텍스트 교환으로 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재한다. HTTPS (HyperText Transfer Protocol) HTTP + SSL 방식으로 HTTP로 통신하는 소켓을 SSL로 대체한 것이다. HTTP는 TCP와 직접 통신하지만, HTTPS에서는 SSL or TLS과.. 2021. 8. 30.
[네트워크] HTTP 메서드 HTTP 메서드는 크게 GET, POST, PUT, DELETE가 대표적이다. 보통 CRUD에서 GET은 조회, POST는 요청, PUT은 수정, DELETE는 삭제를 담당한다 GET 주로 데이터를 읽거나 검색할 때 사용된다. GET방식은 Header에 데이터를 추가하여 전송하며, URL에 데이터가 노출되므로 보안적으로 중요한 데이터를 포함하면 안된다. 또한, 캐싱이 가능하여 같은 데이터를 한번 더 조회할 경우에 저장한 값을 사용하여 조회 속도가 빨라진다. POST 주로 새로운 리소스를 생성할 때 사용된다. POST방식은 URL이 아닌 Body를 통해 데이터를 전송하며, URL에 데이터가 노출되진 않기 때문에 GET보다 안전하다. PUT 주로 리소스를 수정할 때 사용된다. 또다른 HTTP 메소드인 PAT.. 2021. 8. 30.
[네트워크] TCP vs UDP UDP (User Datagram Protocol) - 신뢰성이 낮고 비연결형 서비스를 제공 - 오류 제어, 흐름 제어, 혼잡제어를 모두 하지 않음 - 데이터의 전송순서가 바뀔 수 있음 - TCP와 비교시 속도 매우 빠름 - 헤더가 8Byte로 매우 작음 - RIP과 같은 경로 갱신 프로토콜에 사용 TCP (Transmission Control Protocol) - 높은 신뢰성을 보장하고 연결형 서비스를 제공 - 오류 제어, 흐름 제어, 혼잡제어를 함 - 데이터의 전송순서가 바뀌지 않음 - 속도가 느림 - 헤더가 20Byte로 큼. 헤더는 신뢰적 통신을 보장하는 Sequence number와 ACK로 구성. - 3-way handshaking을 통해 신뢰성 있는 연결 보장 3-way Handshaking.. 2021. 8. 30.