07. HTTP 요청과 응답 - 이론
HTTP란?
Hyper Text Transfer Protocol. 하이퍼텍스트(html)를 전송하기위한 규칙. 세가지 특징이 있다.
1) 사람이 읽을 수 있는 텍스트 기반의 프로토콜이다.
2) 상태를 유지하지 않는다(stateless). 클라이언트 정보를 저장x -> 보완하기위해 쿠키 & 세션을 사용한다.
3) 확장가능하다 - 커스텀 헤더(header) 추가가능. 표준에 정해놓지 않은 헤더를 맘대로 추가 가능하다.
HTTP 요청, 응답 메시지
우리는 단순히 URL을 입력할 뿐이지만, 브라우저가 알아서 요청메시지를 만들어준다.
HTTP 메시지 - 응답메시지
HTTP 메시지 - 요청메시지(GET/ POST)
08. 텍스트와 바이너리, MIME, Base64
바이너리 파일 : 문자와 숫자가 저장되어 있는 파일. 데이터를 있는 그대로 읽고 쓴다. 숫자가 들어있기 때문에 사람이 봐서는 읽기 어렵다.
텍스트 파일 : 문자만 저장되어 있는 파일. 숫자를 문자로 변환 후 쓴다. 모두 텍스트이기 때문에 사람이 읽기 쉽다.
숫자12 를 문자로 변환하려면 문자 '1', '2' 로 변환한다. 4byte -> 2byte로 줄었다. float는 오히려 4byte -> 6byte로 늘었다.
MIME : 텍스트기반 프로토콜에 바이너리 데이터를 전송하기 위해 고안되었다. HTTP의 Content-Type헤더에 사용한다. 데이터타입을 명시한다.
이미지, 동영상 등은 모두 바이너리파일이다. 그런데 HTTP는 텍스트기반의프로토콜이다. 그러면 어떻게 전송할것인가?
MIME을 적어주면 된다. 전송할 데이터 타입을 적어주자! ex. response.setContentType("text/html")
Base64 : 64진법. 바이너리데이터를 텍스트데이터로 변환할때 사용.
0~9(10개), A~Z(26개) , a~z(26개), + , / --> 도합 64개의 문자로 구성
(ASCII코드는 128개이지만 특수문자가 포함되어있고 출력할수 없는 문자도 있어서 안전하지 않다.)
출처 : [패스트캠퍼스] 스프링의 정석 : 남궁성과 끝까지 간다
'IT 강의 정리 > [스프링의 정석] 남궁성의 끝까지 간다' 카테고리의 다른 글
ch.02 Spring MVC 09~12 관심사의 분리와 MVC패턴 (0) | 2022.10.02 |
---|---|
ch.02 Spring MVC 05~06 클라이언트와 서버, 설정파일(server.xml, web.xml) (0) | 2022.09.28 |
ch.02 Spring MVC 03~04 HTTP 요청과 응답 (0) | 2022.09.28 |
ch.02 Spring MVC 01~02 원격프로그램의 실행, AWS에 배포하기 (0) | 2022.09.27 |
ch.01 Spring시작하기 (0) | 2022.09.26 |