본문 바로가기
개발

[네트워크] HTTP의 기초 - 3

by 마스터누누 2017. 4. 18.
728x90
반응형

 HTTP의 기초 - 3



HTTP의 기초 중 포맷에 대해서 알아보자

우리가 response를 보낼 때 content-type이라는 것이 있었는데

어떤 타입으로 응답할 지를 정하는것이다.

이를 MIME(Multipurpose Internal Mail Extensions)이라고 부른다


여기서 MIME은 email 서비스를 위한것이다

email은 흔히 사용하는 네이버나 gmail과 같은 웹메일이 아니다


예전에 email이라는 인터넷 서비스가 있었는데,

이를 위한 표준이었다.






content-type은 다음과 같이 분류되어질 수 있다.

중요한것 중에 multipart/form-data 가 있다.

대용량의 파일을 전송할때 사용하는데, 이미지등을 업로드할 때 form-data를

사용해야지 오류가 나지 않는다.







인터넷 통신의 경우 4개의 layer로 구분한다.


첫번째는 어플리케이션 계층(HTTP)

두번째는 트랜스 포트 계층(TCP)

세번째는 인터넷 계층(IP)

네번째는 네트워크 계층(하드웨어)이다


아래쪽으로 갈수록 물리적인 계층이며 위쪽으로 갈수록 논리적인 계층이다.

HTTP는 TCP를 이용해서 통신을 하게 된다.


TCP는 신뢰성이 있는 통신이다. 

신뢰성을 보장하기 위해서 3-way-handshake라는 것을 하는데

한쪽은 데이터를 보내고, 한쪽은 받을 때

데이터가 제대로 도착했는지 세 방향으로 확인을 하기때문에 그렇게 이름 붙여졌다.


1) sender에서 SYN이라는 무작위 숫자를 넣어서 보낸다.

2) receiver에서 여기에 1을 더한 숫자와 무작위 숫자를 보낸다.

3) sender는 receiver에서 1을 더한 숫자가 도착한 걸 확인한 후에

receiver가 보낸 난수에 1을 더해서 다시 보낸다.


이 과정이 끝난 후 HTTP데이터를 보낸다.

그러나 HTTP의 특성상 데이터를 보내고 나면 연결을 끊어버리므로

데이터를 보낼 때마다 이 과정을 반복해야한다.

따라서 신뢰성 검증에는 좋지만 상당히 오버헤드가 크다.

HTTP 2.0부터는 이와같은 것들이 많이 개선되었다.


중요한것은

TCP는 네트워크를 구성하기 위해서 3-way-handshake를 한다

라는 것을 기억하기 바란다.





HTTP 메소드에 대해서 알아보자

HTTP request 시에 가장 앞쪽 라인에 메소드(요청 방식)이 들어간다.

종류는 8개 이며 주로 사용하는 것은 GET과 POST이다.


GET은 주로 가져올때나 서버의 데이터 변경이 일어나지 않을 때 

POST는 서버의 데이터 변경이 일어날 때


예를 들어, 주소창 검색은 GET,

로그인은 POST가 일반적이다.


GET을 사용하면 url뒤에 쿼리 스트링으로 정보를 전달한다.

POST는 request body에 숨겨져서 보내지게된다.


맨처음에 살펴본 대용량 파일을 전송하기 위한 

content-type의 form도 POST방식이다.







위의 표는 HTTP 응답 코드이다

반응형

'개발' 카테고리의 다른 글

[Web] Mac Bitnami 설치  (0) 2017.04.18
[네트워크] HTTP의 기초 - 4  (0) 2017.04.18
[네트워크] HTTP의 기초 - 2  (0) 2017.04.18
[네트워크] HTTP의 기초 - 1  (0) 2017.04.18
[기술의역사] C++ (C 플러스 플러스)  (0) 2017.04.18

댓글