HTTP

 

단순하고 읽기 쉽다. - 텍스트 기반의 프로토콜

 

상태를 유지하지 않는다. - Stateless

: 클라이언트 정보를 저장 하지 않아. 같은 클라이언트가 요청한 것인지 구별 하지 못함

해결 방법을 쿠키와 세션을 사용

 

확장 가능하다. - 커스텀 헤더(header) 추가 가능

: 대소문자 구분 X, 공백 무시

HTTP 메서드 - GET, POST

GET POST
- 서버의 리소스를 가져오기 위해 설계
- QUERY STRING 을 통해 데이터를 전달(소용량)
- URL 에 데이터 노출 되므로 보안에 취약
- 데이터 공유에 유리

ex. 검색엔진에서 검색단어 전송에 이용
- 서버에 데이터를 올리기 위해 설계됨
- 전송 데이터 크기에 제한이 없음(대용량)
- 데이터를 요청 메시지에 body 에 담아 전송
- 보안에 유리, 데이터 공유에는 불리

ex. 게시판에 글쓰기, 로그인, 회원가입

 

 

텍스트 파일 vs 바이너리 파일

 

바이너리 파일 : 문자와 숫자가 저장되어 있는 파일

텍스트 파일 : 문자만 저장되어 있는 파일

 

바이너리 파일 : 데이터를 있는 그대로 읽고 쓴다.

텍스트 파일 : 숫자를 문자로 변환 후 쓴다.

 

파일 종류 쓰기 읽기
바이너리 문자 -> 문자
숫자 -> 숫자
문자 -> 문자
숫자 -> 숫자
텍스트 문자 -> 문자
숫자 -> 문자
문자 -> 문자

 

 

 

MIME(Multipurpose Internet Mail Extension)

 

텍스트 기반 프로토콜에 바이너리 데이터 전송하기 위해 고안

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

 

 

Base64

 

64진법

A~Z : 26개

a~z : 26개

0~9 :10개

+, / : 2개

 

모두 64개(6bit)의 문자

6bit -> 8bit(문자1개) 

33% 증가

Base64로 인코딩 하면 크기가 커진다

 

 

복사했습니다!