숫자를 문자열로 변경시 바이트가 작아질 수도 커질 수도 있다.

 

 

이번엔 POST로 텍스트와 이미지 파일 두 종류를 넣었다.

 

 

 

RequestHeader라는 클래스를 만든다.

 

package com.fastcampus.ch2;

import java.util.Enumeration;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RequestHeader {
	@RequestMapping("/requestHeader")
	public void main(HttpServletRequest request) {
		
		Enumeration<String> e = request.getHeaderNames();

		while (e.hasMoreElements()) {
			String name = e.nextElement();
			System.out.println(name + ":" + request.getHeader(name));
		}
	}
}

 

http://localhost/app/requestHeader

 

 

https://github.com/castello/spring_basic/blob/main/ch2/RequestMessage.java

 

spring_basic/ch2/RequestMessage.java at main · castello/spring_basic

남궁성의 스프링 기본 강의 @fastcampus.co.kr. Contribute to castello/spring_basic development by creating an account on GitHub.

github.com

 

GET에는 바디가 없지만 POST에는 바디가 있다.

 

 

바디가 있을 때

 

 

여기는 자주 사용하니 알아두자

 

Base64

 

 

 

총 2의 6제곱이므로 6비트이고

그에 따라 6글자 씩 끊어서 사용한다.

 

 

이미지를 base64로 변환할 것이다.

https://www.base64encode.net/

 

Base64 Encode - Online Tool

Encode and Decode Base64 data with this online base64 encoder.

www.base64encode.net

이미지를 넣고 변환

 

이제 Visual Studio Code를 킨다.

 

저걸 복사해서 , 뒤에 붙여넣기

 

우클릭 후 open in default browser

프로토콜이란?

서로간의 통신을 위한 약속 규칙

주고 받을 데이터에 대한 형식을 정의한 것

ex)야구에서 사인주기, 글의 서식

 

HTTP(Hyper Text Transfer Protocal) - 텍스트 기반의 프로토콜(단순하고 읽기 쉬움)

: 상태를 유지X(stateless) -> 클라이언트 정보를 저장X

 

100번대는 HTTP 1.1때 추가된것인데 정보교환을 위함

 

빈줄이 나오면 헤더 끝

 

Get이 Read 라면 Post는 Write

 

url에 들어가서

검사 -> Networkd -> Ctrl+R

 

 

 

 

포스트맨이라는 확장프로그램을 사용해서 GET 이나 POST 뿐 아닌 반복적인 요청에 편리함

 

https://chromewebstore.google.com/detail/tabbed-postman-rest-clien/coohjcphdfgbiolnekdpbcijmhambjff?hl=ko&gl=CZ

 

Tabbed Postman - REST Client - Chrome 웹 스토어

No separate window required! This is the legacy postman extension that can run in a Chrome tab. * Now runs in tab. * Does not…

chromewebstore.google.com

 

확장프로그램 누르고 고

파란색 아이콘 클릭 후 이동

url을 복사 한 후 send

url parameter을 주지 않아 내부 서버 오류가 났다.

 

 

파라미터를 추가하고 다시 send하면 잘 전송됌

 

 

이번엔 POST로 보낼 것인데 위에 썼던 것을 지우고 다시 입력

그 후 Preview 클릭

 

요청라인과 헤더 그리고 입력한 값이 바디로 전송됨을 확인할 수 있다.

 

 

여기서 포트번호가 8080인데 80으로 바꾸면 다음부터는 포트 번호를 붙이지 않아도 된다.

Http는 기본 포트가 80이기 때문

 

Server(Tomcat) -> Service(Catalina) -> Engine -> Host(www.fastcampus.com) ->Context(ch2)

webapps 안에 war파일로 배포하면 자동으로 압축 해제

 

서버에 있는 web.xml은 모든 webapp의 공통 설정이고

 

Maven Depencies에 있는 web.xml은 개별설정이다.

 

원격 프로그램에서 서블릿 등록하고 url 연결하는 부분

이게 불편해서 어노테이션으로 바뀜

@Controller, @RequestMapping

 

매핑

둘중 하나 선택하는데 요즘은 어노테이션을 사용하는 추세

 

원격프로그램 등록과 url 매핑

 

+ Recent posts