본문 바로가기

Network

(17)
[Network] CORS CORS (Cross-Origin Resource Sharing)CORS 문제는, 클라이언트가 다른 도메인(출처)에 있는 리소스를 요청할 때 발생하는 제한이다.SOP 정책 때문에 막혔던 다른 출처로의 요청을 CORS 설정을 거치게 되면 정상적으로 요청을 보낼 수 있게 된다.  동작 원리웹 브라우저는 보안상의 이유로 동일 출처 정책(SOP)을 따른다.동일 출처란 프로토콜, 호스트, 포트가 모두 동일한 경우를 말한다.클라이언트가 다른 출처의 리소스를 요청하면, 브라우저는 이를 차단한다.SOP (Same-Origin Policy) 출처를 판단할 때는 포트 뒤에 요소들은 제외하고 프로토콜, 호스트, 포트가 같을 때 동일한 출처로 판단하게 된다.SOP는 같은 출처끼리만 요청을 보낼 수 있는 것. 웹 브라우저는 보..
[Network] 프록시 서버 프록시 서버란?프록시 서버(Proxy Server)는 클라이언트와 서버 사이에서 중계 역할을 수행하는 서버이다.클라이언트가 직접 서버와 통신하지 않고 프록시 서버를 통해 요청을 보내고 응답을 받는다.이를 통해 보안, 성능, 익명성, 트래픽 제어 등의 이점을 얻는다.프록시는 다양한 형태로 제공되지만 가장 대표적인 리버스 프록시와 포워드 프록시를 알아보자. 리버스 프록시 (Reverse Proxy)리버스 프록시는 서버 측에 위치하여 클라이언트 요청을 받아 적절한 서버로 전달하고, 서버의 응답을 클라이언트로 반환한다.역할 및 특징:클라이언트는 실제 서버를 알 필요 없이 리버스 프록시를 통해 요청(서버의 IP 대신 프록시 IP를 사용).로드밸런싱, 보안(HTTPS 종단), 캐싱, 요청 필터링 등을 사용하여 서버..
[Network] DNS 도메인 네임 우리가 네이버 웹사이트에 접속하려고 하려면 내 컴퓨터에 있는 브라우저가 네이버 사이트를 제공하는 서버에다가 요청을 해서데이터들을 받아와야 한다. 하지만 우리가 전화번호를 이름과 같이 저장하는 것처럼 모든 서버의 IP 주소를 외울 순 없다.도메인 이름의 기본 형식은 이름과 확장자 두 가지로 구성되어 있다. 네이버 같은 경우에는 ‘naver’가 이름이고 ‘.com’이 확장자인 것이다. 이렇게 우리가 흔히 알고 있는 도메인은 바로 인터넷 주소이다. IP 주소는 기억하기 어렵기 때문에 영문이나 한글로된 인터넷 주소인 도메인을 사용하고 있다. 도메인 네임과 URL의 차이점은?웹 주소라고도 하는 Uniform Resource Locator(URL)에는 사이트의 도메인 이름, 프로토콜, 경로 등의 정보가..
[Network] HTTP와 HTTPS HTTP (Hypertext Transfer Protocol)웹에서 통신할 때 사용하는 가장 기본적인 프로토콜클라이언트와 서버가 주고 받는 메세지의 형식에 대한 약속이다. 1. 평문 통신이므로 도청이 가능하다.HTTP는 서버에서 브라우저로 전송되는 정보가 암호화되지 않는다.암호화 하지 않은 평문을 보내기 때문에 제 3자가 훔쳐볼 수 있다.  2. 완전성을 증명할 수 없으므로 변조가 가능하다.HTTP는 메세지가 중간에 변경되어도 알 수 없다.클라이언트에서 메세지를 보내도 공격자가 메세지를 변경해도 서버는 받은 메세지가 변경이 된지 알 수 없고클라이언트도 자신이 보낸 원본의 메세지가 잘 도착되었는지 알 수 없다.  3. 통신 상대를 확인하지 않으므로 위장이 가능하다.HTTP는 올바른 상대와 통신하고 있는지 ..
[Network] HTTP 버전별 특징 HTTP 0.x (0.9)초기 버전: 1991년 도입된 HTTP/0.9는 웹의 태동기 프로토콜이다. 특징텍스트 전송만 지원: HTML 파일 전송에만 사용, 이미지나 다른 파일 포맷 전송 불가. (응답도 HTML 파일 자체만 보내줌)헤더 없음: 요청 및 응답에 메타데이터가 없고 단순한 GET 요청만 지원. (HTTP 헤더 X, 상태 코드 X)비상태적: 연결이 단순히 요청-응답 후 종료. (서버와 클라이언트 간의 연결은 모든 요청 후에 닫힘)비보안: 보안에 대한 고려가 없었음.한계기능이 매우 제한적.확장성과 효율성이 부족.HTTP 1.0HTTP 포맷 형태의 시초 - 1996년 공식화. 특징헤더 도입: 클라이언트와 서버가 메타데이터를 교환 가능.다양한 요청/응답 코드 지원: 상태 코드 및 MIME 타입 지원...
[Network] Stateful vs Stateless Stateful와 Stateless애플리케이션 설계, 통신 프로토콜, 또는 컴퓨터 시스템에서 상태를 관리하는 방법에 따라 분류되는 개념이다.  StatefulStateful 시스템은 이전 요청 또는 작업의 상태를 저장하고, 이를 바탕으로 이후 요청을 처리한다. 특징클라이언트와 서버 간의 연결 지속성이 중요하다.상태 정보는 서버 또는 클라이언트에 저장된다.이전 요청과 다음 요청 간의 컨텍스트를 유지한다.요청 처리 속도는 상태를 참조해야 하므로 다소 느릴 수 있다. 장점사용자 경험이 부드럽고, 연속적인 작업을 쉽게 처리할 수 있다.상태를 유지하므로 복잡한 작업 처리에 유리하다.단점서버의 리소스를 많이 소비한다(예: 메모리 사용 증가).서버가 중단되면 상태 정보가 유실될 수 있다.클라이언트와 서버 간의 세션 ..
[Network] 프로토콜과 OSI 7 Layer 네트워크컴퓨터나 기타 기기들이 리소스를 공유하거나 데이터를 주고 받기 위해 유선 혹은 무선으로 연결된 통신체계 네트워크의 기능들에플리케이션 목적에 맞는 통신 방법 제공신뢰할 수 있는 데이터 전송 방법 제공네트워크 간의 최적의 통신 경로 결정목적지로 데이터 전송노드 사이의 데이터 전송네트워크 프로토콜사람과 사람간의 제대로 된 대화를 하려면 같은 언어를 사용하는 것처럼네트워크 간에도 통신 기능이 제대로 동작하기 위해서는 참여자들 사이에서 약속된 통신 방법이 있어야 한다.네트워크 통신을 하기 위해서 통신에 참여하는 주체들이 따라야 하는 형식, 절차, 규약즉, 네트워크 상에서 통신을 하기 위해서는 네트워크 프로토콜에 따라서 통신을 해야 한다는 것이다. 위에 보이는 네트워크의 기능들을 과연 단 하나의 프로토콜로 ..
[Network] 멱등성이란? 멱등성(Idempotency)어떤 연산을 여러 번 실행해도 결과가 같음을 보장하는 성질을 말한다.쉽게 말해, "한 번 실행한 것과 여러 번 실행한 것이 같은 효과를 낸다"는 뜻"책상이 어지럽혀져 있을 때 정리하는 것" → 멱등하지 않음. (처음과 나중 상태가 다름.)"이미 정리된 책상을 다시 정리하는 것" → 멱등함. (반복해도 상태가 변하지 않음.)  예시 1: 전등 스위치  켜져 있는 전등을 다시 "켜기" 스위치를 눌러도 상태는 변하지 않는다.반대로, 꺼져 있는 전등을 "끄기" 스위치를 누른다고 상태가 변하지 않는다.따라서, "켜기"나 "끄기" 연산은 멱등하다.예시 2: 문 잠그기 문이 이미 잠겨 있다면, "잠그기" 동작을 여러 번 해도 결과는 같다.따라서, "잠그기" 연산은 멱등하다.예시 3: 웹 ..
REST API 란? 목차APIREST API APIAPI는 기본적으로 어떤 소프트웨어가 제공하는 기능과 데이터를 외부에서 접근할 수 있도록 하는 인터페이스이다.쉽게 말하면 한 프로그램에서 다른 프로그램으로 데이터를 주고 받기 위한 방법말 그대로 유저가 코드를 동작시키기 위한 방법이다. ✏️ API의 특징 1. 클라이언트와 서버의 상호작용클라이언트(요청자)는 API를 통해 서버(응답자)에게 데이터를 요청하거나 작업을 요청한다.서버는 API 요청을 처리하고 필요한 데이터를 클라이언트에게 응답한다.2. HTTP 요청 및 응답웹 API의 경우, 주로 HTTP 프로토콜을 사용하여 요청(Request)과 응답(Response)을 주고받는다.요청 메서드(예: GET, POST, PUT, DELETE)를 통해 특정 작업을 수행하도록 서버..
[Http] 캐시와 조건부 요청 캐시 기본 동작        데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 매우 느리고 비싸다. 브라우저 로딩 속도가 느리다. 느린 사용자 경험         캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. 비싼 네트워크 사용량을 줄일 수 있다. 브라우저 로딩 속도가 매우 빠르다. 빠른 사용자 경험      캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. 이때 다시 네트워크 다운로드가 발생한다. 검증 헤더와 조건부 요청1 캐시 시간 초과 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다.1. 서버에서 기존 데이터를 변경함 2. 서버에서 기존 데이터를 변경하지 않음캐시 만료..