Wanna be Brilliant Full-Stack Developer

SpringBoot blog 만들기 Http요청 실습1 본문

Back-End/블로그 만들기 With SpringBoot

SpringBoot blog 만들기 Http요청 실습1

Flashpacker 2023. 2. 11. 02:57


HTTP 1.1 실습을 바로 해보자!

우선 STS에 들어가서 HttpControllerTest.java를 만들자! 

애가 컨트롤러가 되기 위해서 어노테이션이 필요하다 

@RestController 

컨트롤러는 어떤 역할을 하게 되는가? 

사용자가 요청을 할때 거기에 대한 응답을 해주는것이 컨트롤러이다. 어떤 응답을 해주는가?

데이터를 응답해줄것이다. 

 

만약에 데이터를 응답하는 컨트롤러가 아니라 사용자가 요청했을때 HTML파일을 응답해주는 컨트롤러를 만들고 싶다면?

@Controller라고 만들면 된다.

근데 지금은 데이터를 응답하는 컨트롤러를 만들것이다. 

 

그래서 간단하게 함수 4개를 만들것이다! 

package com.cos.blog.test;

import org.springframework.web.bind.annotation.RestController;

// 사용자가 요청 -> 응답(HTML 파일)
// @Controller

// 사용자가 요청 -> 응답(Data)

@RestController
public class HttpControllerTest {

	public String getTest() {
		return null;
	}
	
	public String postTest() {
		return null;
	}
	
	public String putTest() {
		return null;
	}
	
	public String deleteTest() {
		return null;
	}
}

return 타입은 String이니까 여러분들이 return하는 데이터는 문자열이라는 것이다.

return  타입을 ""해서 적어보자 

그리고 함수 위에다가 어노테이션을 걸어보자 

package com.cos.blog.test;

import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.service.annotation.PutExchange;

// 사용자가 요청 -> 응답(HTML 파일)
// @Controller

// 사용자가 요청 -> 응답(Data)

@RestController
public class HttpControllerTest {
	
	//http://localhost:8080/http/get 
	@GetMapping("/http/get")
	public String getTest() {
		return "get 요청";
	}
	
	//http://localhost:8080/http/post
	@PostMapping("/http/post")
	public String postTest() {
		return "post 요청";
	}
	
	//http://localhost:8080/http/put
	@PutMapping("/http/put")
	public String putTest() {
		return "put 요청";
	}
	
	//http://localhost:8080/http/delete
	@DeleteMapping("/http/delete")
	public String deleteTest() {
		return "delete 요청";
	}
}

애를 통해서 4가지 GET, POST, PUT, DELETE 함수를 호출을 해보자!

http://localhost:8080/http/get 은 Select 데이터를 하라는것이고

http://localhost:8080/http/post (insert) 

http://localhost:8080/http/put (update)

http://localhost:8080/http/delete (delete) 

이렇게 하고 저장을 하고 실행을 해보자! 

 

여기서 보면 톰캣이 시작하고 포트는 8080이고 context path가 없다라고 적혀있다.

그러면  웹브라우저로 먼저 요청을 해보려고한다. 

http://localhost:8080/http/get 여길 들어가면 

그리고 관리자 도구에 들어가서 네트워크를 보면 

니가 요청한 주소는 http://localhost:8080/http/get

이고 요청방식은 Get이고 

Status Code는 내가 요청을 서버에서 했으니까 서버가 정상적으로 응답했다는것은 200으로 뜬다 HTTP 요청이 정상이다. 

밑에 내려보면 Response header는 서버가 내가 요청을 했으니까 클라이언트가 주소를 통해서 웹브라우저를 통해서

요청을 하면 여기서 말하는 서버는 

이것이다. 애가 어떻게 응답을 해줬는가 보는건데 

Content-type을 보면 text/html;charset-UTF-8파일이라는건데? 

이말은 무엇인가? 내가 응답을 해줬는데 text인데 html text를 응답해줬고 

그리고 글자는 인코딩이 UTF-8로 되어있어라고 알려주는 것이다.

 

그리고 Request Headers를 보면 내가 웹 브라우저를 통해서 서버한테 요청을 할때 헤더이다.

Request header에 보면 나중에 하나하나 알게 될것이다. 

 

똑같이 POST요청을 한번 해보자! 

이렇게 빨간색이 떴다는것은? 먼가 실패했다는 것인데..

왜 실패 했는가? 405가 무엇인지 보자 Http 405 를 검색해보면 

이것은 무엇인가? HTTP 405는 해당 메서드가 허용 되지 않는 다는 뜻이다.

이게 무슨 말인가? 내가 웹브라우저에 주소 창에다가 요청을 할때는

절대 POST요청이 될 수 없다.

인터넷 브라우저 요청은 무조건 get요청밖에 할 수 없다.

Post와 Delete와 Put은 웹브라우저를 통해서 할 수 가 없다. 

 

그래서 우리가 다른 요청을 하기 위해서 PostMan을 설치 한것이다. 

여기서 다시 다 해보자!

Post요청에 대한 응답이 왔다.

메시지가 온것이다. post요청이 return이 된것이다.

이 4가지를 중점으로 해서 블로그를 만들것이다

이 4가지가 가장중요하다!