컴퓨터간의 인터넷 통신 이렇게 멀리 떨어진 두 컴퓨터가 있다고 가정해보자. 이렇게 중간에 수많은 노드들이 있는데 이 중 정보를 원하는 컴퓨터에 전달하는 방법은 무엇일까? 이때 우리가 많이 들어본 IP(Internet Protocol)라는 용어가 등장한다. 각 컴퓨터들은 고유의 IP주소를 가지고 있다. 우리가 원하는 정보를 특정 컴퓨터에게 인터넷으로 ...
PORT란? 하나의 IP에서 다중으로 실행되고 있는 어플리케이션의 구분할 수 있게 해주는 기준이다. PORT는 어떤 경우에 사용할까? 동시에 여러 서버와 통신해야할 경우 해당 패킷이 어떤 어플리케이션에 해당하는 패킷인지 구분이 어렵다. 이런 경우에 PORT 번호를 통해 어떤 애플리케이션에 해당하는 패킷인지 구분이 가능하다. TCP/IP에 담긴 패킷정보...
IP의 단점 1. 가독성이 떨어지고 외우기 어렵다. 혹은 같은 아이피는 외우기 어렵고 이 아이피가 어떤곳을 나타내는지 알기 어렵다. 2. 변경될 수 있다. 이었던 IP가 로 바뀌면 접근하기 어려워진다. 이런 IP의 단점을 보완시켜줄 수 있는게 바로 DNS이다. DNS란? 도메인 네임 시스템(Domain Name System)의 줄임말로 호스트의 도메인...
URI URI, URL, URN URI(Uniform Resource Identifier)는 로케이터(Uniform Resource Location), 이름(Uniform Resource Name) 또는 둘다로 구분될 수 있다. URI라는 개념은 리소스를 식별하는 것. 다시 말해 리소스의 위치와 이름을 식별하는 것을 말한다. [URI, URL URN의 ...
HTTP란? > HTTP(HyperText Transfer Protocol) 는 HTML문서뿐만 아니라 이미지, 영상과 같은 리소스들을 가져올 수 있게 해주는 프로토콜이다. 심지어 서버와 서버가 통신할때도 HTTP 프로토콜 위에서 데이터를 주고받는다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 하다. [HTT...
HTTP의 특징 클라이언트-서버 구조 무상태 프로토콜(stateless) 비연결성 HTTP 메시지 단순함, 확장가능 클라이언트-서버 구조 > 클라이언트와 서버로 구조를 나눔으로써 책임과 역할을 분리하여 하나의 책임에만 집중하게 함으로써 각각 독립적으로 진화할수 있게 되었다. 클라이언트는 비즈니스 로직이나 데이터를 다룰 필요 없이 UI를 그리는데 집중할 ...
HTTP 메시지 구조 [HTTP 메시지 구조] , , , 으로 구성되어 있다. 메시지 모두 동일한 구조를 갖지만 각 구조의 구성요소들은 차이가 있다. 은 필수정보 HTTP 메시지 종류 [요청 메시지] 는 , , , 로 구성된다. (에도 이 추가될 수 있다.) [응답 메시지] <img src = "https://velog.velcdn.com/im...
✅ HTTP 메서드란? > HTTP 메서드는 클라이언트가 웹 서버에게 사용자 요청의 목적이나 종류를 알리는 수단이다. 최초의 HTTP 메서드는 GET메서드밖에 없었지만 이후 다양한 메서드들이 추가되었다. ✅ HTTP 메서드의 종류와 특징 ☑️ 주요 메서드 5가지 GET : 리소스 조회 POST : 요청 데이터 처리, 주로 데이터 등록에 사용 PUT : ...
클라이언트 - 서버 데이터 전달 방식 > 클라이언트와 서버간의 데이터 전달방식에는 크게 두가지가 있다. 쿼리 파타미터를 통한 데이터 전송 방식에서 사용된다. 주로 검색기능이나 데이터 조회시 정렬 필터에서 많이 사용한다. 메시지 바디를 통한 데이터 전송 , , 방식에서 사용된다. 주로 회원가입, 상품주문, 리소스 등록, 리소스 변경등에서 사용된다. 클...
✅ HTTP 상태코드란? > 클라이언트가 보낸 요청의 처리 상태를 응답에서 숫자로 표현하여 알려주는 기능이다. 보통 사이의 숫자로 표현된다. ☑️ : 요청이 수신되어 처리중 ☑️ : 요청 정상 처리 ☑️ : 요청을 완료하려면 추가 행동이 필요 ☑️ : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 처리할 수 없음. ☑️ : 서버 오류, 서버...
✅ HTTP 헤더란? > HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있게 해준다. HTTP 헤더는 대소문자를 구분하지 않는 이름과 콜론(:)다음에 오는 값으로 이루어져 있다. ☑️ 헤더 필드는 의 형식으로 이루어져 있다. 은 대소문자 구분이 없다. (는 띄어쓰기 허용을 의미한다.) [요청과 응답 헤더] ✅ HT...
✅ 전송방식의 종류 > 전송방식에는 크게 4가지 종류가 있다. ☑️ 단순 전송 ☑️ 압축 전송 ☑️ 분할 전송 ☑️ 범위 전송 ☑️ 단순 전송 > 요청에 대한 응답시 메시지 바디에 대한 를 지정하는 전송 방식 메시지 바디의 길이를 다 알고 있어야 사용이 가능하다. 한번에 요청하고 응답한다. ☑️ 압축 전송 > 서버에서 메시지 바디를 압축하여 용량을 ...
일반 정보 ✅ 일반정보 종류 ☑️ From ☑️ Referer ☑️ User-Agent ☑️ Server ☑️ Date ☑️ From > 유저 에이전트의 이메일 정보 일반적으로 잘 사용되지는 않는다. 검색 엔진 같은곳에서 주로 사용된다. 요청(Request)에서 사용한다. ☑️ Referer > 이전 웹 페이지 주소 현재 요청된 페이지의 이전 웹 ...
인증(Authorization) ✅ 인증의 종류 ☑️ Authorization ☑️ WWW-Authenticate ☑️ Authorization > 클라이언트 인증 정보를 서버에 전달 인증 방식은 OAuth, OAuth2, SNS 로그인 등 다양한데, 이런 방식별로 들어가는 값이 다르다. 인증 메커니즘과는 상관없이 헤더를 제공하는 것으로 인증과 관련된...
✅ 캐시의 기본동작 - 캐시 미사용 클라이언트가 이미지를 요청한다고 가정해보자. 서버에서 리소스가 있으면 해당 요청에 대해 응답한다. 이때, HTTP헤더()와 HTTP바디()를 합쳐서 의 용량으로 응답한다. 클라이언트는 응답받은 리소스를 받아 사용한다. 클라이언트는 리소스를 다시한번 서버에 요청
✅ 검증 헤더 > 캐시의 데이터와 서버의 데이터가 같은지 검증하는 데이터. 검증 헤더에는 두가지가 있다. ☑️ ☑️ : ✅ 조건부 요청 헤더 > 검증 헤더로 조건에 따라 분기한다. ☑️ , : 사용 ☑️ , : 사용 ☑️ 조건이 만족하면 : 사용 ☑️ 조건이 만족하지 않으면 : 사용 ✅ If-Modified-Since와 Last-Mod...
✅ 캐시 제어 헤더 ☑️ : 캐시 제어 ☑️ : 캐시 제어 (하위 호환) ☑️ : 캐시 유효 기간 (하위 호환) ☑️ Cache-Control : 캐시 유효 시간값을 사용한다, 초 단위로 나타낸다. : 데이터는 캐시해도 되지만, 항상 원(origin) 서버에 검증하고 사용한다. : 데이터에 민감한 정보가 있으므로 함부로 저장하면 안된다. ...
✅ 프록시(Proxy) 서버란? > 클라이언트와 서버 사이에서 대리 통신하는 중계하는 개념을 프록시(Proxy)라고 하고 이렇게 중계 기능을 하는 것을 프록시 서버라고 한다. ✅ 프록시(Proxy) 서버의 특징 [클라이언트]와 [서버]에 각각 반대의 역할을 한다. [클라이언트]에게는 서버의 역할, [서버]에게는 [클라이언트]의 역할을 수행한다. 프록시 ...
캐시 지시어(Cache-Control) - 확실한 캐시 무효화 > Cache-Control 을 사용해 캐시를 무효화하는 응답을 할 수 있다. ☑️ : 데이터는 캐시해도 되지만 항상 origin 서버에 검증하고 사용한다. ☑️ : 데이터에 민감한 정보가 있어 저장하면 안될때 사용한다. 메모리에서 사용하고 최대한 빨리 삭제한다. ☑️ : 캐시 만료후...