728x90
7. 텍스트 파일과 바이너리 파일
바이너리 파일(읽을 수 없다면) : 문자와 숫자가 저장되어 있는 파일
텍스트 파일 (읽을 수 있다면): 문자만 저장되어 있는 파일.
파일 종류 | 쓰기 | 읽기 |
바이너리 | 문자 -> 문자 숫자 -> 숫자 |
문자 -> 문자 숫자 -> 숫자 |
텍스트 | 문자 -> 문자 숫자 -> 문자 |
문자 -> 문자 문자 -> 숫자 |
- 바이너리 파일은 데이터를 있는 그대로 읽고 쓴다.
- 텍스트 파일은 숫자를 문자로 변환 후 쓴다.
8. MIME(Multipurpose Internet Mail Extensions)
- 텍스트 기반 프로토콜에 바이너리 데이터 전송하기 위해 고안
- HTTP의 Content-Type 헤더에 사용. 데이터의 타입을 명시
타입 | 설명 | MIME타입 예시(타입/서브타입) |
text | 텍스트를 포함하는 모든 문서 | text/plain, text/html, text/css, text/javascript |
image | 모든 종류의 이미지 | image/bmp, image/webp |
audio | 모든 종류의 오디오 파일 | audio/midi, audio/mpeg, audio/webm, audio/ogg, audio/wav |
video | 모든 종류의 오디오 파일 | video/webm, video/ogg |
application | 모든 종류의 이진 데이터 | application/octetstream, application/pkcs12, application/vnd.mspowerpoint, application/xhtml+xml, application/xml, application/pdf |
9. Base64
- 바이너리 데이터를 텍스트 데이터로 변환할 때 사용.
- 64진법은 '0'~'9'(10), 'A'~'Z'(26), 'a'~'z'(26), '+', '/'모두 64개(6bit)의 문자로 구성.
이미지 파일을 Base64로 인코팅하면 이런 문자들이 되고.
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<img src="data:image/jpeg;base64,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" />
</body>
</html>
해당 내용을 img 요소에 넣어 출력하면.
브라우저에 이미지를 출력한다.
728x90
'Study > SpringFramework' 카테고리의 다른 글
10. 관심사의 분리와 MVC패턴 - 이론 25:06 (0) | 2022.08.01 |
---|---|
09. 관심사 분리와 MVC 패턴 - 이론 24:36 (0) | 2022.06.23 |
07. HTTP 요청과 응답 - 이론 36:22 (0) | 2022.05.10 |
06. 설정 파일 - server.xml, web.xml 13:28 (0) | 2022.05.10 |
05. 클라이언트와 서버 34:25 (0) | 2022.05.10 |