URI와 웹 브라우저 요청 흐름
·
Computer Science/Network
URI(Uniform Resource Identifier)URI란?URI란 인터넷에서 자원을 식별하기 위한 문자열을 의미한다.웹 상의 특정 자원(파일, 페이지, API 등)을 식별하거나 위치를 지정하는 방식이다.URI는 URL과 URN을 포함한다.URL: 리소스가 있는 위치(Locator)를 지정URN: 리소스에 이름(Name)을 부여  URI 구성 요소 schema://[userinfo@]host[:port][/path][?query][#fragment]  https://www.google.com:443/search?q=hello&hl=ko  - schema주로 프로토콜을 정의. 어떤 방식으로 자원에 접근할 것인가 - userinfoURL에 사용자 정보를 포함해서 인증해야될 때 사용. (거의 사용 안함..
포트(PORT)와 DNS
·
Computer Science/Network
PORT 클라이언트에서 게임도 하고 화상통화도 하고 웹 브라우저도 사용하고 있다면 여러개의 서버랑 통신해야한다.클라이언트 IP에서 온 패킷이 게임/화상통화/웹 브라우저 중 어디에서 온 패킷인지 구별하려면?  PORT는 프로그램(컴퓨터 네트워크 프로세스) 간 통신을 구분하기 위한 논리적 번호이다.IP 주소와 함께 사용되고, 하나의 장치에서 여러 어플리케이션이 동시에 작동할 수 있도록 돕는다. 즉, IP는 목적지 서버를 찾는 용도이고, 서버 안에서 돌아가는 애플리케이션을 구분하는게 PORT이다.  DNS(Domain Name System)DNS란 도메인 이름을 IP 주소로 변환해주는 시스템이다.예: `www.google.com` → `200.200.200.2` 도메인을 사용하는 이유는?- 사람들이 IP주소(..
TCP/UDP
·
Computer Science/Network
TCP / UDP란?TCP/UDP는 OSI 7 계층 모델의 전송계층에서 동작하는 프로토콜.IP와 함께 사용되어 데이터를 송수신한다.둘의 주된 차이는 데이터 전송 방식과 신뢰성이다.  TCP(전송 제어 프로토콜, Transmission Control Protocol)의 특징1. 연결지향 : 3 way HandsahkeTCP의 논리적 연결 과정을 말한다. * SYN : 접속 요청 / ACK : 요청 수락(ACK와 함께 데이터 전송 가능)1. 클라이언트가 서버에게 접속을 요청함.2. 서버가 클라이언트의 요청을 수락하고, 클라이언트에게 접속을 요청함.3. 클라이언트가 서버의 요청을 수락함.  2. 신뢰성 : 순서 보장먼저, TCP 프로토콜을 이용한 메시지 전달 과정을 살펴보자.1. HTTP: 프로그램이 메시지 ..
IP(인터넷 프로토콜)
·
Computer Science/Network
IP(인터넷 프로토콜, Internet Protocol) 란?IP는 인터넷에서 데이터를 송수신하기 위한 기본 프로토콜.네트워크 상의 장치들이 서로 데이터를 교환할 수 있도록 규칙과 구조를 정의한다.OSI 7 계층 모델의 네트워크 계층에 속한다. 역할지정된 IP 주소로 데이터를 전달.패킷 단위로 데이터를 전달.네트워크 계층에서 host의 주소 지정과 패킷 분할/조립을 담당. 패킷 전달 과정1. 패킷 구성하기출발지 IP와 목적지 IP, 전송 데이터 등을 담은 패킷을 구성한다.이는 IP 프로토콜에 의해 서버들이 규약을 따르고 있다. 2. 클라이언트 패킷 전달패킷을 통해 인터넷 망에서 노드들이 출발지/목적지를 확인하고 목적지 IP(200.200.200.2)까지 전달한다. 3. 서버 패킷 전달서버도 마찬가지로 새..
HTTP vs HTTPS, SSL/TLS
·
Computer Science/Network
HTTP(Hypertext Transfer Protocol)※ 기본 포트 : 80인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약.다음과 같은 단점이 있다. 텍스트 기반 프로토콜: HTTP는 텍스트 명령을 사용하여 요청과 응답을 주고 받음.- 기본 HTTP는 데이터가 평문으로 전송되므로, 중간에 패킷을 가로채기 쉬움 무상태 프로토콜: 각 요청과 응답이 독립적이며, 서버는 이전 요청에 대한 정보를 유지하지 않음.- 웹 애플리케이션이 각 요청에 대해 별도로 인증 및 상태 정보를 전송해야 함을 의미- 헤더 오버헤드 : 쿠키, 사용자 에이전트, 각종 커스텀 헤더 등이 요청마다 반복적으로 전송 -> 대역폭과 리소스 소모 증가   HTTP(Hypertext Transfer Proto..
HTTP/1.0, HTTP/1.1, HTTP/2.0, HTTP/3.0(QUIC)
·
Computer Science/Network
HTTP/1.0특징 :수명이 짧은 연결요청 당 TCP handshake가 발생됨. 한 연결 당 하나의 요청 처리.문제점 :RTT(Round Trip Time)가 늘어나는 문제점.HTTP 1.0 환경에서는 하나의 IP에 여러 개의 도메인을 운영할 수 없음.RTT 감소를 위해 이미지 스프라이트(image sprite), 코드 압축, base64인코딩 등 시행   HTTP/1.1특징 :한번 TCP 연결을 해놓고 계속 데이터를 주고 받음. (keep-alive default)서버가 여러 호스트를 가질 수 있다는 전제로 호스트 헤더를 추가함.다운로드 받다가 연결 끊기면 다시 다운로드 받을 수 있도록 함. (대역폭 최적화에 대한 헤더를 추가)문제점 :HOL(Head Of Line-Blocking) : 네트워크에서 ..
암호화 - 단방향 vs 양방향, 대칭키 vs 비대칭키(개인키/공개키), 암호화 알고리즘
·
Computer Science/Network
암호화(Encryption)란?암호기술은 중요한 정보를 읽기 어려운 값으로 변환하여 제 3자가 볼 수 없도록 하는 기술이다. 정보 보안의 핵심 원칙에는 기밀성, 무결성, 인증이 있다.기밀성(Confidentiality) : 허가받은 자만 정보에 접근할 수 있다.무결성(Integrity) : 허가받은 자만 변경해야한다.즉, 무결성은 제 3자에 의한 정보의 변경이 있는지 없는지를 확인하는 기능.인증(Authentication) : 사용자나 객체의 디지털 정체성을 식별한다.암호화란 위의 세가지 원칙중 "기밀성"을 중심으로 하는 기술이다. (그렇다고 다른 원칙들과 무관한 것은 아님)   단방향(One-Way Encryption) vs 양방향(Two-Way Encryption)평문을 암호문으로 (=암호화), 암호..