본문 바로가기

개발에 도움이 되는/Network

(10)
HTTP Status Code - HTTP Status Code 특정 HTTP 요청이 성공적으로 완료되었는지 알려준다. 응답은 5개의 그룹으로 나누어진다. 100번대 : 정보 확인 200번대 : 통신 성공 300번대 : 리다이렉트 400번대 : 클라이언트 오류 500번대 : 서버 오류 - 주요 Code 200 (OK) : 요청 성공 (GET) 201 (Create) : 생성 성공 (POST) 202 (Accepted) : 요청 접수 O , 리소스 처리 X 204 (No Contents) : 요청 성공, 내용 없음 300 (Multiple Choice) : 요청 URI에 여러 리소스가 존재 301 (Move Permanently) : 요청 URI가 새 위치로 옮겨감 304 (Not Modified) : 요청 URI의 내용 변경이 없음 ..
SOP(Same-Origin Policy), CORS(Cross-Origin Resource Sharing) 1. SOP (Same-Origin Policy) : 동일 출처 정책을 뜻하며, MDN에선 다음과 같이 정의한다. 어떤 출처에서 불러온 문서나 스크립트가 다른 출처에서 가져온 리소스와 상호작용하는 것을 제한하는 중요한 보안 방식 정리하자면 "같은 출처의 리소스만 공유가 가능하다" 라는 정책이다. - 출처 (Origin) : Protocol, Host, Port의 조합으로 되어있다. ex) https://help-solomon.tistory.com:443/ https = Protocol , help-solomon.tistory.com = Host, 443 = Port 이 중 하나라도 다르면 동일한 출처로 보지 않는다. SOP가 있어서 다른 사이트와의 리소스 공유를 제한하기 때문에 사용자 정보(ex. Log..
WebSocket - WebSocket : HTML5 표준 기술로, 클라이언트와 서버 사이의 동적인 양방향 연결 채널을 구성하는 통신 프로토콜 - 특징 1. 단방향 통신인 HTTP의 단점을 보완하기 위해 등장 2. WebSocket은 HTTP에 비해 Header 크기가 작기 때문에 오버헤드를 줄일 수 있음 3. Real-Time Web Application 구현에 사용 4. 연결지향 양방향 전이중 통신 - 작동 원리 1. Opening Handshake 웹 소켓 클라이언트에서 Handshake 요청(HTTP Upgrade)을 하고 이에 대한 응답으로 101(Protocol 전환 승인)을 받는다. Header 정보는 아래와 같다. - Upgrade : Protocol 전환을 위해 사용함. WebSocket 요청시 반드시 W..
DNS(Domain Name System) - DNS (Domain Name System) : Host의 Domain Name을 네트워크 주소로 변환하거나, 그 반대의 역학을 수행하는 시스템이다. 인터넷의 DNS는 이름과 숫자 간의 매핑을 관리하는 마치 전화번호부 같은 느낌 - Domain 구조 1) Domain은 전 세계적으로 고유하게 존재함 2) 정해진 규칙, 체계에 따라 만들어지며 임의로 생성, 변경이 불가능 3) 모든 Domain 은 .(Dot) 또는 Root라 불리는 Domain 아래에 계층적 구조로 구성 - DNS 구성 요소 1) Domain Name Space : DNS가 관리하는 아래와 같은 계층적 구조 2) Resolver : 웹 브라우저와 같이 DNS 클라이언트의 요청을 Name Server로 전달하고 Name Server로부터..
OSI 7 계층(OSI 7 Layer) - OSI 7 계층 (Open System Interconnection 7 Layer) : 국제 표준화 기구 (ISO)에서 개발한 모델로, 네트워크에서 일어나는 통신 과정을 7 계층으로 나눈 모델 - 계층을 나눈 이유 : 통신이 일어나는 과정을 단계별로 파악할 수 있고, 특정 계층에 문제가 발생하면 다른 계층을 건들지 않고 문제가 발생한 계층에서 해결하기 위해 1. 물리 계층 (Physical Layer) : 물리적인 장치의 전기적, 전자적인 신호를 사용하여 Data 전송 0과 1로 나열한 디지털 신호를 아날로그 신호로 바꾸거나(Encoding) 그 역으로 아날로그 신호를 디지털 신호로 바꾸는(Decoding) 과정을 거쳐 Data를 서로 주고받음 - 단위 : bit - 프로토콜 : RS-232 - 장비..
쿠키(Cookie), 세션(Session) - 쿠키와 세션의 사용 이유 : HTTP의 특징 중 Connectionless에 의해 통신할 때마다 새로 연결을 해줘야 하고 Stateless에 의해 상태 정보가 유지되지 않는 특성이 있음. 이 특성들을 단점을 보완하기 위해 사용하며, 쿠키와 세션 덕분에 어떤 페이지에서 다른 페이지로 넘어가도 인증이 그대로 유지됨. - 쿠키 (Cookie) : 클라이언트 로컬에 저장되는 Key-Value쌍이 들어있는 작은 데이터 파일 - 특징 1. 클라이언트의 상태 정보를 로컬에 저장했다가 요청할 때 참조 2. 클라이언트에 300개까지 쿠키 저장이 가능함. 하나의 도메인당 20개의 값만 가지며, 하나의 쿠키 값은 4KB까지 저장 가능 3. 쿠키는 이름(쿠키를 구별하기 위한 이름), 값(쿠키의 이름과 관련된 값), 만료 ..
HTTP(Hyper Text Transfer Protocol), HTTPS(HTTP Secure) - HTTP : 응용 계층 (Application layer)에 속해 있으며, HTML과 같은 하이퍼미디어 문서를 전송하기 위한 Protocol이다. - 특징 대부분의 파일 형식 전송 가능 : Json, Text, Image는 물론 음성 파일 등도 HTTP를 통해 전송이 가능 80번 Port를 사용 클라이언트 - 서버 구조 : 클라이언트의 요청이 있을 때 서버가 응답하는 단방향 통신 Stateless : 서버는 클라이언트의 상태를 저장하지 않는다. 애당초 요청할 때 필요한 데이터를 다 담아서 보내기 때문에 아무 서버나 호출해도 상관없음(서버 확장성에 좋음) Connectionless : 클라이언트가 서버에 요청하고 응답을 받으면 바로 연결을 끊어 연결을 유지하는 자원을 최소한으로 줄여줌. 하지만 웹 브라..
TCP 3-way handshake, 4-way handshake - Handshake : 완전한 통신이 시작되기 전에 통신의 시작 부분에서 통신의 Protocol을 약속하는 정보를 서로 주고받는 자동화된 합의 과정 - 이 과정에서 쓰일 TCP Packet Flag 정보 1. SYN (Synchronize Sqeunce Number) : 연결 설정의 의미를 지님 2. ACK (Acknowledgement) : 응답 확인의 의미를 지님 3. FIN (Finish) : 세션 연결을 종료시킬 때 사용, 연결 해제의 의미를 지님 - 3-way handshake : 정확한 전송을 보장하기 위해 상대방과 사전에 세션을 수립하는 과정. TCP 연결은 3번의 과정을 통해 이루어짐. - 과정 1. 클라이언트가 서버와 연결하려면 랜덤으로 생성된 Seq 값을 서버에게 보냄 2. 서버는 이..

반응형