# http response

✏️ HTTP 응답
스프링(서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다. 정적 리소스 예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는, 정적 리소스를 사용한다. 뷰 템플릿 사용 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다. HTTP 메시지 사용 HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달해야 하므로, HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 실어 보낸다. 📌 HTTP 응답 - 정적 리소스 스프링 부트는 클래스패스(ClassPath)의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static /public /resources /META-INF/resources src/main/resources는 리소스를 보관하는 곳이고, 또 클래스패스의 시작 경로이다. 따라서 다음 디렉토리에 리소스를 넣어두면 스프링 부트가 정적

HTTP 메세지
HTTP 에 대해서는 이전 글에서 간략하게 알아보았습니다. 이번에는 서버와 클라이언트 간에 어떻게 HTTP를 통해 데이터를 교환하는지 알아보도록 합시다.. HTTP 메세지 HTTP 메세지는 서버와 클라이언트 간에 데이터가 교환되는 방식입니다. > HTTP 메세지의 두 가지 타입 요청 (request) 응답 (response) 요청(request)은 클라이언트가 서버로 전달해 서버의 액션이 일어나게끔 하는 메세지입니다. 응답(response)는 요청에 대한 서버의 답변입니다. HTTP 의 요청과 응답의 구조는 서로 닮았으며, 그 구조는 다음과 같습니다. > 시작 줄(start-line)에는 실행되어야 할 요청 or 요청 수행에 대한 성공/실패가 기록되어 있습니다. 이 줄은 항상 한 줄로 끝납니다. > > 옵션으로 HTTP 헤더 세트가 들어갑니다. 여기에는
[Spring Boot] RestController, ResponseEntity란?
@Controller 🆚 @RestController @Controller 기존의 Spring MVC가 view을 사용하기 때문에 view(화면)를 return 데이터는 ModelAndView객체를 이용해 Controller에서 Client로 전달 @ResponseBody 어노테이션을 사용 시 View를 return하지 않고 Controller에서 직접 데이터 return 가능 @RestController 모든 메서드는 @ResponseBody 어노테이션 기본으로 작동 컨트롤러 클래스의 각 메서드마다 @ResponseBody을 추가할 필요 X View가 필요없는 REST 방식에서 주로 사용 ResponseEntity란 스프링에서 제공하는 ResponseEntity 타입은 개발자가 직접 결과 데이터와 HTTP 상태코드를 제어할 수 있는 클래스다. ResponseEntity의 구조를 보게 되면, 위과 같이

[Django] 장고 Views를 활용한 HTTP 요청 처리#1_다양한 응답의 함수 기반 뷰
1) > FBV는 호출 가능한 객체 그 자체로서 장고 뷰의 기본이고 CBV는 클래스.as_view()를 통해 호출 가능한 객체를 '생성해서 리턴한다.' 2) > path(-pk-)와 repath(-pk-)의 결과는 같다. repath에서는 모든 인자가 str 타입으로 전달되는 반면, path에서는 매핑된, 그 자체가 하나의 작은 클래스인 정규 표현식, converter의 to_python 함수에 의해 '변환된 값'이 인자로 전달된다. 3) > 앞에서 middeleware를 뷰 전/후로 호출되는 함수 정도로 해석했는데, 사실 뷰를 감싸고 있는 여러 겹의 검열 장치 기능도 하고 있다고 한다. 예를 들어서 request가 목표로 하는 view로 접근하기 전에 middleware가 기대하는 값이 들어와야 하고, http response가 돌아 나올때도 middleware가 기대되는 값이 나와야 한다. 4) > 쿼리셋에서 특정한 쿼리를 지정해서 필터링하는 부분을 제외하고는
빠르고간단한 HTTP Response Code 이해하기
최근 Swagger 를 이용해서 RESTfull API 문서를 작성하고 있는게 하나 있는데, 나랑 우리회사 팀원들도 참고할 겸, 그리고 우리집에 계신 개발자 분도 참고하라고 겸사 겸사 해서 테이블로 정리. 인터넷 검색해도 많긴 한데, 조금 읽기 길어서 짧게. ( 정말 간단하게는 프론트에서는 주로 2XX , 4XX 대만 신경써도 거의 대부분 됨 ) API를 만들때 사용하는 HTTP 응답 코드 | Code | Status | Case | | --- | --- | --- | | 200 | OK | 클라이언트의 요청을 서버가 정상적으로 처리했다.정상적으로 응답을 내려준다. | | 201 | Created | 클라이언트의 요청을 서버가 정상적으로 처리했고 새로운 리소스가 생겼다.새로운 아이템이 생성되었다. | | 202 | Accepted | 비동기 작업에 대한 요청시. 생성하는데 시간이 걸려서 응답을 해주긴 했지만, 아직 서버에서는 작업중이다. | | 204 | N

[spring] HTTP 응답 데이터를 만들어 클라이언트에 전달하는 다양한 방법
📖 ✏️ > 이 글은 스프링이 제공하는 HTTP 응답 데이터의 조회 방법과 활용 방법을 학습하고 정리한 포스팅이다. HTTP 응답 데이터를 만들어 클라이언트에 전달하는 다양한 방법 스프링(서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다. 하나씩 살펴보자. 정적 리소스 예) 웹 브라우저에 정적인 HTML, css, js를 제공할 때는 정적 리소스를 사용한다. 뷰 템플릿 사용 예) 웹 브라우저에 동적인 HTML을 제공할 때는 뷰 템플릿을 사용한다. HTTP 메시지 사용 HTTP API를 제공하는 경우에는 HTML이 아니라 데이터를 전달한다. HTTP 메시지 바디에 JSON 같은 형식으로 데이터를 전달한다. 1. 정적 리소스 응답 데이터 보내기 정적 리소스는 해당 파일을 변경 없이 그대로 서비스하는 것을 의미한다. 스프링 부트는 클래스패스의 다음 디렉토리에
1) HTTP에 대해 알아보자
1. HTTP HyperText Transfer Protocol HyperText => HTML(Web) Protocol => 하나의 컴퓨터가 다른 컴퓨터와 소통할 때(파일을 주고 받는 등) 정해진 규칙과 틀을 준수해야 원활한 소통이 가능. 여기서 정해진 규칙이 바로 'Protocol' 즉 'Web'에서 HTML문서 데이터를 클라이언트와 서버가 주고 받을 때 사용되는 컴퓨터들 간의 통신 규칙 및 규약 HTTP image HTTP Request(요청)과 HTTP Response(응답)으로 나뉘어져 있다. 2. HTTP Request client와 server client : 보통 요청을 하는 컴퓨터를 가리킨다. sever : 보통 요청을 받는 컴퓨터를 가리킨다. client에서 server에 요청
2020 TIL no. 3 - 기억해 놓고 싶은 개념들
짤막하게 기억해놓고 싶은 개념, 설명들 모음 1. Django의 App을 구분하는 기준 제일 처음의 개념은 독립성이다. 즉 해당 앱만 띠어다가 다른 프로젝트에 옮겨넣는다고 하더라도, 마이그레이션 해주고, 관련 패키지들만 설치되어있다면 다른 프로젝트에서도 돌아갈 수 있는 기능의 모음들인가를 뜻한다. 하지만 현실은 그렇지 않다. 내가 프로젝트로 진행했었던 에어비엔비에서도, 숙소를 만드는 순간 숙소의 호스트가 생기고, 예약을 하는순간 게스트와 호스트의 외래키가 필요해진다. 여기에서 내 의견을 조금 덧붙이자면, 앱의 이름에 따라 REST API의 URI가 정해지는 만큼, 해당 앱에서 다루는 주요 리소스에 따라 붙이는게 맞다고 생각한다. 2. SPA(Single Page Application) 말그대로 HTML이 한개의 페이지로 이루어진 어플리케이션을 말한다. 싱글페이지가 아닌 웹페이지는 페이지를 이동할 때마다 같은 nav bar, footer같은 정보들을 불필요하게 렌더링하