HTTP(HyperText Transfer) 프로토콜 구조
- 하이퍼텍스트(HTML) 문서를 교환하기 위해 만들어진 TCP/IP 기반 protocol(통신 규약).
- 웹상에서 네트워크로 서버끼리 통신을 할때 어떠한 형식으로 서로 통신을 하자고 규정해 놓은 "통신 형식" 혹은 "통신 구조"
- Stateless
- 요청/응답 (request/response) 구조
- start line / headers / body 로 구성
- headers : general / request / entity header 로 구성
- https://velog.io/@teddybearjung/HTTP-%EA%B5%AC%EC%A1%B0-%EB%B0%8F-%ED%95%B5%EC%8B%AC-%EC%9A%94%EC%86%8C
Web에서 HTTP 프로토콜의 헤더를 다루는 경우
- HTTPServletRequest나 HTTServletResponse 직접 핸들링
- ResponseEntity를 통해서 원하는 데이터 전달
- https://anjoliena.tistory.com/103
ResponseEntity 사용
- HttpEntity class : Http 프로토콜을 이용하는 통신의 header와 body 관련 정보를 저장할 수 있게 함
- 통신 메시지 관련 header와 body의 값들을 하나의 객체로 저장하는 것이 HttpEntity 클래스 객체
- Request 부분일 경우 HttpEntity를 상속받은 RequestEntity가, Response 부분일 경우 HttpEntity를 상속받은 ResponseEntity가 하게 함
- @ResponseBody와의 차이점 : https://heewon26.tistory.com/38
그 외 참고
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.lang.Nullable;
@Slf4j
public class RestClient {
protected HttpEntity<String> header(String jwt, @Nullable Object object) {
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.setBearerAuth(jwt);
String body = StringUtils.EMPTY;
if (object != null) {
ObjectMapper mapper = new ObjectMapper();
try {
body = mapper.writeValueAsString(object);
} catch (JsonProcessingException e) {
log.error(e.getMessage());
}
}
return new HttpEntity<>(body, headers);
}
}
'Web > Else' 카테고리의 다른 글
[Web]@ContollerAdvice, @ExceptionHandler 예외처리 (0) | 2021.10.22 |
---|---|
[Web]WAS (0) | 2021.10.22 |
[Web]RESTful (0) | 2021.10.22 |
[Web]MSA (0) | 2021.10.22 |
[Web]Spring Boot 관련 개념 참고 링크 (0) | 2021.10.22 |