220829

mousse·2022년 8월 29일

오늘의시리즈

목록 보기
2/6

Get 방식

url에 데이터를 붙여서 전송
-> 데이터 길이에 제한이 있음. 상대적으로 보안에 취약

Post 방식

body에 데이터를 담아서 전송
-> Content-type에 데이터 타입 명시, 데이터 길이 제한 없음

Json과 Multipartfile

form-data 형태로 보내주는 방법만 가능한 듯 하다.

게시판과 파일 처리

글 + 파일
물리적 파일 저장
파일 정보 저장
글 저장

ResponseEntity

우선 HttpEntity는 Http 요청이나 응답에 해당하는 HttpHeader와 HttpBody를 포함하는 클래스

ResponseEntity는 HttpEntity를 구현.
HttpStatus, HttpHeader, HttpBody를 포함한다. HttpEntity와 달리 HttpStatus가 추가됨. RestTemplate에서 주로 사용된다
응답 자체의 독립된 값이나 표현 형태라고 생각하면 된다.

RestTemplate
Rest API 호출 이후 응답을 받을 때까지 기다리는 동기 방식.
사용 예.

private static RestTemplate restTemplate;

public static ResponseEntity<SubmtData> sendEngine(){
	int subNum = 123;
    int pNum = 1;
    Object pCode = "코드";
    SubmitData requestDto = SubmitData.builder()
    	.subNum(subNum)
        .pNum(pNum)
        .pCode(pCode)
        .build();
   HttpStatus headers = new HttpHeaders();
   headers.add("Content-Type", "applicatino/json");
   HttpEntity<SubmitData> entity = new HttpEntity<>(requestDto, headers);
   String url = "http://localhost:8080/send";
   return restTemplate.exchange(url, HttpMethod.POST, entity, SubmitData.class);
}

MediaType

MimeType의 서브클래스. 인터넷에 전달되는 파일 포맷과 포맷 컨텐츠를 위한 식별자.
MimeType: 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 매커니즘.

마임 타입 중 application/octet-stream : text/plain을 제외한 다른 모든 경우를 위한 기본값.

확장자 체크

	String ext = filename.substring(filename.lastIndexOf(".")+1, filename.length());
	final String[] BAD_EXTENSION = {"..."};
		try {
			int len = BAD_EXTENSION.length;
			for(int i = 0; i < len; i++) {
				if(extension.equalsIgnoreCase(BAD_EXTENSION[i])) {
					throw new IOException("BAD Extension");
				}
			}
		}catch (Exception e) {
			e.printStackTrace();
		}
https://developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types
profile
이랬다 저랬다 왔다갔다

0개의 댓글