inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Khái niệm cơ bản về web HTTP cho mọi nhà phát triển

3xx - Chuyển hướng 2

Java 코드로 307 Redirect로 본문 유지 하는 방법?

Đã giải quyết

1157

ilovekdh12083809

1 câu hỏi đã được viết

2

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]
저는 평소에 클라이언트에서 받은 요청 내용을 기억해서 (예를 들어 체크박스 표시한 list와 함께 다음페이지로 이동) 다른 URL에서 처리하기 위해 Forward를 사용한 경험이 있고, 요청 내용을 기억하나 못하나로 Redirect와의 차이라고 생각했습니다.

근데 이 강의를 통해 307 요청 내용을 기억하는 방법도 있다는 것을 보고, 흥미를 가져 http 응답의 start-line을 임의로 변경해서 바디를 유지해보고 싶단 생각이 들었지만, 일반적으로 redirect 시 302 코드만 보였고 307로 임의로 바꾸는 방법은 제 지식의 한계상 검색 범위가 좁아서 안나오더군요...

물론 당연히 실무에 필요한 방법은 아니겠지만! 서버에서 HTTP 메소드인 GET POST 등 지정할 수 있듯이 HTTP의 상태코드를 지정할 수 있나 궁금해서 물어봅니다!

네트워크 http메서드 redirect forward

Câu trả lời 1

3

OMG

안녕하세요. 김동현님, 공식 서포터즈 OMG입니다.
.

package com.example.demo;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

@Controller
public class TestController {
    
    @ResponseStatus(HttpStatus.TEMPORARY_REDIRECT)
    @GetMapping("/test")
    public String test() {
        return "redirect:/307";
    }

    @GetMapping("/307")
    @ResponseBody
    public String redirect() {
        return "ok";
    }
}

image

@ResponseStatus 어노테이션을 이용한 응답코드 반환하는 방법입니다.

 

localhost:8080/test -> localhost:8080/307 (TEMPORAY_REDIRECT : 307)

localhost:8080/307 -> "ok" 문자열 리턴

위 흐름으로 진행된다고 보시면 될 것 같습니다.

 

image
.
감사합니다.

0

ilovekdh12083809

아는 만큼 보인다고... ResponseStatus 어노테이션이 있었군요! 빠른 답변 감사합니다!

캐시무효화시 그냥 no-store만 넣어되지 않나요?

0

68

2

API의 헤더와 바디에 대한 문의 입니다.

0

70

2

수정폼과 수정

0

66

1

쿠키에 대해 질문드려요!

0

88

2

서버에서 캐시 검증 헤더를 직접 처리해야 하나요?

0

86

1

http api get, post 멱등

0

39

1

컬렉션의 개념

0

47

1

시작라인에 들어가는 요청 대상 경로는 상대 경로 아닌가요?

0

51

1

PATCH 는 PUT처럼 멱등이여야 하지 않나요?

0

80

1

리소스 질문드립니다

0

55

1

IP 패킷 질문입니다.

0

58

1

html from, http api

0

74

2

브라우저 캐시가 60초 유효하다는게 무슨 뜻일까요

0

120

1

stateless 무상태 예제가 생각났는데. 저가 생각 한게 맞는지 궁금합니다.

0

98

1

URI 및 URL 질문, 왜 자바(스프링)에서는 이렇게 나누었는지?

0

139

1

host와 port

0

106

1

tcp/ip는 연결을 유지? 아니면 유지하지 않음?

0

144

1

다음 강의 커리큘럼 질문!!

0

129

2

캐시 개념에 대해서 설명하시지는 않으시는건가요?

0

113

1

클라이언트가 patch, delete 요청 시 알아야 하는 url

0

90

1

html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유

0

168

2

비 연결성(connectionless) 강의에서 질문입니다~

0

139

1

PATCH를 사용하지 못할 때 왜 POST?

0

161

2

협상과 우선순위3 질문드립니다.

1

129

1