본문 바로가기

study/이거저거

엉터리 정리 - 깃, http, MIME

정리는 하고 싶은데 제대로 공부한 건 아니고,(귀찮아서는 그런건 아니다.)

이런저런 이유로 까먹지만 않을 정도로 정리하는 엉터리 정리글.

 

그렇다고 내가 공부한 소스가 엉터리라는 건 아니다.(오해X)


Git. 깃으로 프로젝트를 관리할 수 있다. 깃을 추상화해서 생각하자.

 

깃은 작업 영역, 인덱스 영역, 헤드 영역이 있다. 깃은 이 세 공간에 파일을 저장하고 동기화 등의 기능들을 통해 버전을 형상을 관리한다.

 

작업 영역은 일반 작업 폴더와 같다. 작업된 파일이 이곳에 저장된다.

작업된 파일을 인덱스 영역에 옮긴다.(add)

인덱스 영역에 파일을 헤더(트리) 영역에 옮겨 영구히 저장한다.(commit)

 

헤더 영역에선 커서를 통해 과거의 프로젝트 버전으로 다운시킬 수 있다.

 

이런 과정을 통해 동기화를 하고, 버전을 관리할 수 있다.


HTTP에는 Get, Post, Put, Delete 통신을 한다. -> DB 쿼리 select, insert, update, delete와 매치된다.

각각 데이터를 요청, 추가, 수정, 삭제 하는 통신이다.

 

HTTP의 통신의 특징은 stateless이다. 클라이언트와 서버간의 한번의 요청, 응답이 이뤄지면 통신은 끊긴다. 그래서 연결에 필요한 인증이 연결 시마다 필요하다.

반면에 소켓 통신 같은 stateful은 연결이 지속된다. 따라서 한번의 인증 후에는 연결이 지속된다.

 

이런 단점을 보완하기 위해 여러 session 유지 방식이 발전됐고, 그 중 하나가 spring security 이다.


MIME 타입 자세한 설명 출처: 모질라 developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types

 

"MIME 타입이란 클라이언트에게 전송된 문서의 다양성을 알려주기 위한 메커니즘입니다"

"브라우저들은 리소스를 내려받았을 때 해야 할 기본 동작이 무엇인지를 결정하기 위해 대게 MIME 타입을 사용합니다.

 

HTTP 통신은 패킷 교환 방식을 사용한다. 패킷을 구분하기 위해 헤더에 실제 전달하는 데이터에 대한 정보가 담겨있다.

 

HTTP의 바디에는 실제 데이터를 담고, 헤더에 데이터에 대한 정보가 담겨 있다.

 

헤더에서 바디에 담긴 데이터의 타입을 설명하는 문법을 MIME 타입이라고 할 수 있다.

MIME 타입 사용방법 : developer.mozilla.org/ko/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types