본문 바로가기
반응형

Networks9

REST란 REST 개념 REpresentational State Transfer의 약자 월드 와이드 웹(www)과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 개발 아키텍처의 한 형식 REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일 REST는 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나 한마디로 웹의 장점을 살려 활용하기 위한 하나의 네트워크 기반 애플리케이션 아키텍처 스타일 💡 아키텍처 스타일? 스타일을 따르는 아키텍처가 지켜야 하는 제약조건들의 집합 REST 구성 자원 (Resource) : URI 모든 자원에 고유한 ID 존재, 자원은 Server에서 관리 자원을 구별하는 ID는 HTTP URI.. 2023. 6. 7.
웹 서버(WEB), 웹 애플리케이션 서버(WAS), 서블릿, 스레드 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공(템플릿), 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버(WAS, Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 - 동적 HTML, HTTP API(JSON) - 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat), Jetty, Undertow 웹 서버와 웹 애플리케이션 서버의 차이 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직 하지만 둘의 용어의 경계가 모호하다. - 웹 서버도 프로그램을 실행하는 기능을 포함하기도 함. - 웹 애.. 2022. 4. 18.
HTTP 알아보기 5 - 캐시, 프록시 캐시 캐시가 없을 때 같은 데이터를 반복해서 보낼 때 HTTP 헤더의 크기가 1MB, 바디의 크기가 10MB라면 총 11MB의 데이터를 반복해서 전송해야 한다. 따라서 사용자는 반복되는 데이터를 불필요하게 계속 받아야 하므로 로딩 속도가 느려지게 된다. 해당 문제를 해결하기 위해서 캐시라는 기술을 적용하게 되었다. 캐시 클라이언트가 최초로 서버에 요청을 할때 데이터를 정상적으로 보내준다. 헤더에 cache=control: max-age=60 (생명 주기, 초 단위)를 포함하여 보낸다. 클라이언트는 두번째 요청부터는 캐시에 해당 데이터가 유효 상태로 있다면 서버에서 받을 필요 없이 바로 캐시 저장소에서 꺼내서 쓸 수 있게 된다. 캐시 시간이 초과되면 최초로 서버에 요청하는 단계를 반복한다. 정리 캐시 가능 시간.. 2022. 4. 15.
HTTP 알아보기 4 - 헤더 HTTP Header header-field = field-name ":" OWS field-value OWS (OWS: 띄어쓰기 허용) field-name 대소문자 구문 없음 HTTP 전송에 필요한 모든 부가 정보 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표준 헤더가 매우 많음 필요시 임의의 헤더 추가 가능 분류 - General 헤더: 메시지 전체에 적용되는 정보, 예) Connection: close - Request 헤더: 요청 정보, 예) User-Agent: Mozilla/5.0 (Macintosj; ..) - Response 헤더: 응답 정보, 예) Server: Apache - Entity 헤더: 엔티티 바디 정보, .. 2022. 4. 15.
HTTP 알아보기 3 - 상태 코드 HTTP 상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청이 수신되어 처리 중. 2xx (Successful): 요청 정상 처리. 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요할 때 4xx (Client Error): 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없을 때 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못하는 상태. 따라서 인식할 수 없는 상태 코드를 서버가 반환하면 클라이언트는 상위 상태 코드로 해석해서 처리하면 된다. 예를 들어, 299번의 모르는 코드가 오면 2xx코드 (Successful, 정상 처리)로 처리하면 된다. 1xx (Infromation.. 2022. 4. 14.
HTTP 알아보기 2 - 메서드, API HTTP 메서드 HTTP API를 만든다고 가정해보자. 따라서 회원 정보 관리 API를 만들어 보았다. 회원 목록 조회 (/read-member-list) 회원 조회 (/read-member-by-id) 회원 등록 (/create-member) 회원 수정 (/update-member) 회원 삭제 (/delet-member) 해당 방법처럼 만드는 경우가 있는데 위의 방법은 좋지 않은 방법이다. URI는 리소스 식별!!, URI 계층 구조를 활용해야 한다. 리소스란? - 회원을 등록하고 수정하고 조회하는 것이 리소스가 아님. - 회원이라는 개념 자체가 바로 리소스 리소스를 식별하는 방법 - 회원을 등록하고 수정하고 조회하는 것을 모두 배제 - 따라서 회원이라는 리소스만 식별하면 된다. -> 회원 리소스를 U.. 2022. 4. 13.
HTTP 알아보기 1 - 특징, 메시지 HTTP(HyperText Transfer Protocol) 하이퍼텍스트 문서 간 링크를 통해 전송 HTTP 메시지에 모든 것을 전송한다 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML(API) 거의 모든 형태의 데이터 전송 가능함 서버 간에 데이터를 주고받을 때도 대부분 HTTP 사용한다. 역사 HTTP/0.9 (1991년): GET 메서드만 지원, HTTP 헤더 X HTTP/1.0 (1996년): 메서드, 헤더 추가 HTTP/1.1 (1997년): 가장 많이 사용하는 버전 - TCP 사용 - RFC2068 (1997) > RFC2616(1999) > RFC7230~7235(2014) HTTP/2 (2015년): 성능 개선 - TCP사용 HTTP/3 (2020년~): TCP대신 U.. 2022. 4. 13.
URI, URL, URN URI (Uniform Resource Identifier) URI는 로케이터(Locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다. (https://www.ietf.org/rfc/rfc3986.txt - 1.1.3. URI, URL, and URN) Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL Locator로 리소스가 있는 위치를 지정한다. 변할 수 있다. 보통 URI라고 말하면 URL을 뜻한다. URL : scheme://[userinfo@]host[:port][/path][?query][#fragment] userinfo@ - 사용자 인증정보 - .. 2022. 4. 12.
IP, TCP/UDP, DNS 패킷 교환(IP - Internet Protocol, 인터넷 프로토콜) 독립적인 다양한 형태의 네트워크를 엮어내겠다는 아이디어에서 시작했다. 따라서 기존의 전화망 이외에 위성을 사용한 통신망, 지상의 무선 네트워크도 모두 포괄해야 했기 때문에 선을 연결해서 하는 전화망 타입인 회선교환이 아닌 데이터를 패킷으로 쪼개 교환하는 방법을 택해였다. 이에 따라 다양한 네트워크에서 사용하는 통신 규칙이 (패킷의 틀과 같은) 필요했다. 이렇게 만들어진 것이 바로 IP(Internet Protocol)이다. 다양한 네트워크를 노드라고 부르기로 하였고 모든 노드들을 유기적으로 연결했다. 이러한 노드들을 통해서 나의 메시지(패킷)를 전달하기 위해서는 주소가 필요하다. (마치 우체국을 통해서 우편을 보낼때 상대방의 주소를 .. 2022. 4. 11.
반응형