본문 바로가기

SpringBoot/백엔드

[이것이 백엔드 개발이다] ch 6. 백엔드 개발에 필요한 최소한의 HTML

1. 웹 브라우저와 서버의 상호작용 

 

1) 웹 브라우저가 서버와 상호작용하는 방법 

 

 ○ URL을 통한 접속 

  - 사용자는 주로 웹 브라우저에서 직접 URL을 입력하여 웹 페이지를 방문하거나  a 태그가 걸려 있는 링크를 통해 접근 

  - URL을 통한 접속 요청은 GET

 

 ○ form 태그를 사용하여 form 제출

  - form 태그는 'GET'과 'POST'라는 방식을 모두 사용할 수 있으며, 주로 'POST'를 사용 

 

 ○ XHR을 사용한 AJAX 요청 

  - 특정 유튜브 채널의 동영상 첫 목록에는 해당 채널의 영상 중 일부가 표시 

  - 이 상태에서 스크롤을 아래로 내리면 로딩이 되면서 다음 동영상들이 목록에 추가 

  - 화면을 새로고침하지 않으면서 서버에 다음 동영상 목록에 대한 정보를 요청하고 받아 오게 되는데, 이것을 바로 'XHR을 사용한      AJAX 요청'으로 구현 가능 

 

 ○ 웹 소켓을 통한 연결

  - 웹 소켓은 서버와 클라이언트 간의 통신을 양방향으로 가능하도록 지원 

  - 서버에서 먼저 데이터를 전송할 수 있는 수단은 웹 소켓 이외에도 SSE(Sever Sent Events)라느 방법도 있음 

 

2. form 태크로 서버와 상호작용하는 방법 

 

1) form 태그로 요청하고 받아보기 

 

<html>
<head>
    <meta charset="utf-8">
</head>
<body>
<form action="./article" method="post">
    <input type="text" name="title">
    <input type="text" name="content">
    <input type="submit">
</form>
</body>
</html>

 

- form 태그는 눈에 보이지 않지만 form 내부에 포함된 input 태그의 입력값들을 웹 서버로 전송

 

- 컨트롤러에 './article' 요청을 처리할 수 있는 @RequestMapping 

 

SimpleRestController.java 컨트롤러 추가 

package kr.co.hanbit;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SimpleRestController {

    @RequestMapping("/article")
    public String createArticle() {
        return "SOME MESSAGE";
    }


}

 

- 입력란에 '제목은 title', '내용은 content'를 넣은 후 [제출] 버튼을 클릭해 form 전송 

 

- './article' 경로에선느 아직 title과 content를 처리할 수 있는 준비가 되지 않음

- 단순히 'SOME MESSAGE'를 반환하도록 코드를 작성했기 때문에 자바 코드상에서 title과 content를 받을 수 있도록 변경 

 

@RestController
public class SimpleRestController {

    @RequestMapping("/article")
    public String createArticle(@RequestParam("title") String title,
                                @RequestParam("content") String content) {
        return String.format("title=%s / content=%s", title, content);
    }


}