스프링 컨트롤러 <요청>

윤혜림·2023년 7월 19일
0

Controller

스프링부트 컨트롤러는 웹 애플리케이션의 엔드포인트를 처리하는 데 사용되는 핵심 구성 요소입니다. 컨트롤러는 클라이언트로부터 요청을 수신하고, 적절한 로직을 수행한 후 응답을 반환합니다.
스프링부트 컨트롤러는 일반적으로 @RestController 또는 @Controller 어노테이션을 사용하여 정의됩니다.
@Controller 어노테이션을 사용하는 경우 메서드는 뷰를 반환하거나, 다른 메서드로 리디렉션을 수행할 수 있습니다.
컨트롤러의 메서드는 대개 HTTP 요청 메서드와 연결됩니다. 예를 들어, GET 요청을 처리하려면
@GetMapping 어노테이션을 사용합니다. 이와 같은 어노테이션을 사용하면 요청 경로와 매핑되는 메서드를 지정할 수 있습니다.

RestController

@RestController 어노테이션을 사용하면 각 메서드가 @ResponseBody 어노테이션과 함께 작동하여 HTTP 응답의 본문에 직접 데이터를 씁니다.

GET

필요한 데이터 , 문서 줘
브라우저에 모든 엔터, 하이퍼링크 클릭
get요청을 할때는 구체적 지리가 필요함 =>쿼리스트링 필요함
서브입장에서는 대부분 select함 (db에서 정보 조회)
통닭을 달라는 요청 할 때
통닭집주소/통닭-> 통닭 줘 근데 무슨 통닭을 줘야할지 모른다
그래서 구체적 get요청이 필요하다
localhost:8080/통닭(GET)
localhost:8080/통닭?size=1 &type='양념'->쿼리스트링 요청
DB입장: select*feom 통닭 where size=1 and type='양념'

HTTP GET 메서드는 HTTP 프로토콜을 사용하여 서버에서 클라이언트로 정보를 보내는 방법 중 하나입니다.
GET 메서드는 서버로부터 데이터를 요청하고, 응답으로 받은 데이터를 클라이언트에게 전송합니다.
GET 메서드는 URL에서 쿼리 매개 변수(query parameter)를 사용하여 요청하는 데이터를 전달합니다.
예를들어, https://example.com/search?q=keyword 와 같은 URL에서 q 매개 변수에 keyword 값을 전달하고 있습니다.
GET 메서드를 사용하여 데이터를 요청할 때, 요청 헤더와 요청 본문을 사용하지 않습니다.
GET 메서드는 보통 웹 브라우저에서 링크를 클릭하거나 URL을 직접 입력하여 페이지를 요청할 때 사용됩니다.
또한 RESTful API에서 자원을 조회할 때도 사용됩니다.

POST

에러가 뜨면 검색을 해봐야한다
브라우저에서 post 안되는 이유: get요청이 아니기 때문에(엔터는 무조건 get요청, 심지어get)

405-메소드 에러

POSTMAN

설치해서 봐야한다
postman 사용 +누르고
검색바 옆에 메서드 선택하고 주소 넣고 요청하면됨

HTTP POST 메서드는 HTTP 프로토콜을 사용하여 서버에 데이터를 제출하는 방법 중 하나입니다. POST 메서드는 클라이언트에서 서버로 데이터를 전송하며, 보안적인 이유로 GET 메서드보다 더 많은 데이터를 전송할수 있습니다.
POST 메서드는 HTTP 요청 본문(request body)에 데이터를 포함시켜 전송합니다. 요청 본문은 텍스트, JSON,XML, 바이너리 데이터 등 다양한 형식으로 전송할 수 있습니다.
POST 메서드를 사용하여 데이터를 전송할 때, 클라이언트는 서버에 요청하는 데이터를 명시적으로 지정해야합니다. 이를 위해 보통 HTML

요소에서 method="POST" 속성을 사용하거나, JavaScript를 사용하여 XMLHttpRequest 객체를 생성하여 데이터를 전송합니다.

MIME 타입

웹에서 body 데이터를 보낼때 어떻게 생겼는지 표기하는 기법
header에 넣는다

데이터를 줄수있다 = 줄 데이터가 필요하다 =body데이터 필요하다
body에다가 논문을 담는다고 하면 데이터를 전송해줄때 형식이 필요하다
어떻게 보내야할지의 약속을 왜 해야할까-> 사람이 읽는게 아니고 컴터가 파싱이라는걸 해야하니까
summary="지구는 둥글다","title:",지구의 미래
이거 어떻게 파싱할건데;;
그래서 프로토콜이 중요하다고
summary=지구는 둥글다 & title= 지구의 미래&content=내용
웹에서 바디데이터를 보낼때 어떻게 생겼는지 표기하는 표기법-mime타입
데이터박스위에 라벨을 붙이면 얘가 아 이렇게 파싱하는구나함
MIME타입의 중요성

X-WWW-FORM-URLENCODED

GetMapping과 PostMapping의 /뒤 주소가 같아도 충돌을 안하는 이유는 요청 방식이 다르기 때문이다
하지만 메서드명은 다르게 해줘야한다

##stateless
다시 get요청을 할때 요청했던걸 모른다 상태가 없는 서버(stateless-클라이언트를 모르는 서버)
클라이언트의 정보를 계속 기억하고 있으면 힘드니까= statelss서버

statefull

클라이언트의 상태를 저장하거나 소켓 객체를 지우지 않아도( 클라이언트의 정보를 기억하고 인식한다 )=statefull
인식을 하면 statefull

profile
도라에몽

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

훌륭한 글이네요. 감사합니다.

답글 달기