본문 바로가기

Network & Web

(5)
RESTful API는 어떻게 만들 수 있을까? RESTful API를 설명하기 전에 REST의 개념과 속성에 대해 학습하고 넘어가야한다. REST란? Representational State Transfer의 약자로, 현재 웹의 아키텍처 스타일이다. 따라서 어떠한 프로토콜이나 표준이 아니라 아키텍처 원칙들이 모여있는 말 그대로 아키텍처 스타일이다. 아키텍처 스타일은 소프트웨어를 설계할 때 이 아키텍처 스타일에 해당하는 규약들을 적용해가며 설계하는 것이다. REST는 로이 필딩이 박사학위 논문으로 정의하였다고 한다. REST의 구성 1. 자원 (Resource) REST에서 가장 중요한 단어이다. REST에서는 각각의 자원을 이름을 붙여 구분하고 이 이름은 URI로 표현한다. 자원을 URI를 붙여 간단히 가리킬 수 있다. 예를 들어, 어떠한 게시판의 ..
HTTP 메시지의 구조 HTTP 메시지의 구조로 요청과 응답에 각각 뭐가 있는지 살펴보자. 전체적으로 간단히 보면 이렇게 생겼다. 여기서 스타트 라인은 요청메시지일 경우 요청라인, 응답메시지일 경우 스테이터스라인이다. HTTP 요청메시지 요청메시지의 예를 보면서 구조를 나눠보자. 1) 요청라인 요청 라인 - GET / HTTP/1.1 메서드(GET), 요청 URI(/), 프로토콜 버전(HTTP/1.1) 로 구성된다. 쿼리 파라미터가 URI에 포함되는 경우도 요청 URI에 포함된다. (예- GET /search?title=title-test&author=olivejua HTTP/1.1) 2) 헤더 헤더는 메시지의 바디에 대한 부가적인 정보, 즉 메타 데이터를 표현한다. 클라이언트와 서버의 헤더를 보고 메시지에 대한 동작을 결정한..
웹 애플리케이션의 구조와 흐름 Spring Boot가 잘 되어 있어서 잘 이용만 한다면 깊게 알지 않아도 애플리케이션을 만들 수는 있지만 문제해결에 있어서 개념을 알고 있어야 더 빠른 해결점에 갈 수 있을 것이다. 웹 사이트에 접속을 마음 먹은 순간부터 요청과 응답의 연속이다. 웹 브라우저에서 URL을 입력하여 웹 페이지를 요청하고 웹서버는 요청메시지대로 처리 후 응답 메시지를 전송한다. 먼저 요청부터 응답하는 지점까지 전체적인 그림을 그려봤다. Web Application의 요청부터 응답까지의 흐름 웹 서버(Web Server)는 무슨 역할을 하지? 여기서 웹 서버는 웹 브라우저와 통신할 수 있도록 소켓 연결 등의 네트워크 처리를 한다. 그리고 브라우저에서 보낸 요청 메시지를 해석하고 정적 리소스로 응답해줄 수 있으면 웹 애플리케이..
[웹을 지탱하는 기술] JSON JSON : JavaScript Object Notation의 약자 그 이름이 나타내는 바와 같이 JavaScript 의 기법으로 데이터를 기술할 수 있는 점이 가장 큰 특징입니다. 웹 서비스에서 브라우저가 JavaScript를 실행할 수 있어 호환성이 좋고 XML과 비교하면 데이터표현이 간결하다는 등의 이점이 있어 Ajax 통신에서 데이터 포맷으로 활용되고 있습니다. 미디어 타입 : application/json 자료형 : JSON에 마련되어 있는 자료형에는 다음의 6가지가 있습니다. object array string number boolean null object 이름과 값의 집합 이름과 값의 세트를 오브젝트의 '멤버'라고 부름 JSON에서 멤버의 이름은 항상 문자열임 하지만 멤버의 값은 문자열, ..
메타데이터와 MIME미디어 타입 / XML과 HTML의 차이 WEB을 지탱하는 기술을 읽다가 갑자기 궁금해져서 정리하는 글 HTTP 헤더에 메타데이터, 미디어타입이 들어가는 건 알겠는데 둘의 차이가 뭘까? 찾아보니 메타데이터란, 데이터를 설명하는 데이터이다. 따라서 여기서 데이터(리소스라고도 함)란 HTML 문서 등 데이터를 표현하는 http 바디 부분에 해당함. 그리고 그것을 설명하는 부분을 메타데이터라고 지칭할 수 있다. 미디어타입이란, (여기서 MIME 미디어타입은 간단히 미디어타입이라고 부르자.) 바디의 형식이 어떠한 종류인가, 인코딩 설정 등을 정의 하는 부분이다. 따라서 Content-type, charset 등임. 메타에는 데이터를 설명하는 내용을 담고 그 안에 미디어 타입이 포함되어 있다. 하지만 위의 예시에서 설명해 주듯이 메타데이터는 미디어타입을..