본문 바로가기
개발

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

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

HTTP의 기초 -2 







 HTTP의 동작 방식에 대해서 알아보자


사용자가 URL을 입력하면 브라우저가 HTTP request로 서버로 보낸다

이 서버는 request를 분석하여 클라이언트가 원하는 HTTP response를 보내게 된다.

이렇게 response를 받은 클라이언트는 이를 바탕으로 원하는 결과물을 출력한다.

(물론 HTTP request와 response에 포멧이 정해져 있다.)


추가로, 실제로는 URL을 가지고 DNS가 어떤 서버로 보낼지 변환을 한다.

사람은 URL을 인식하는데 서버는 이를 IP로 인식하기 때문에 

서버까지 URL을 전달하는데 DNS가 개입하게 된다.




HTTP Request



HTTP request 메세지는 다음과 같이 생겼다.

Request line과 Request Header를 합쳐서 Request Message Header가 된다.

request는 크게 header와 body 2부분으로 나누어 보는데,

때문에 보통 앞쪽을 Message Header, 뒤쪽을 Message Body라고 한다.


Request line의 맨 첫번째는 요청의 종류가 나온다.

GET이나 POST 요청이 대부분이다.

다음은 주소와 프로토콜이 나온다.


request header에서는 Host의 이름이 첫번째 줄에 나오는데

Request line을 포함해 Host까지는 HTTP의 필수적인 요소이다.


나머지는 옵셔널 한 값들이며

어떤 것들을 받을수 있는지, 브라우저의 종류, 바디의 길이 등의 

메타데이터들이 입력된다.


body에는 이미지 업로드나 검색한것들,

서버에 전달해줘야하는 메세지들이 들어가게 된다.





우리가 앞서 만들었던 서버에 index.html을 호출하고,

개발자 도구로 네트워크 탭을 열었을때 Request Header를 확인할 수 있다.




HTTP Response



response의 구조는 request와 비슷하다.

여러가지의 메타 데이터들이 헤더에 위치하며

바디는 데이터 본문이 보내진다.






서버로 부터 응답을 받은 브라우저는 다음과 같이 동작한다.

1) 최초에는 HTML을 가져온다

2) HTML에 css, js, 이미지에 대한 링크 정보 추출

3) 추출한 정보의 URL을 이용해서 새로운 요청을 보낸다

4) 모든 웹 자원을 받아와서 랜더링을 시작한다.

5) 1.1 은 파이프라인 2.0 은 병렬 처리로 성능 개선







다음은 URL(Uniform Resource Locator)의 구조이다.

URI는 URL과 URN을 합친것을 말한다.

URL 을 가지고 서버의 리소스를 식별할 수있다.


스킴 :사용자이름:비번@호스트:포트/경로;파라미터?쿼리#프레그먼트


사용자 이름과 비밀번호는 옵셔널한 값이라 잘 사용하지 않는다.

포트를 생략할 경우 http는 80이 기본포트이고 

https는 443번이 기본포트이다.


쿼리는 편의상 =과 &를 사용한다

예를들어, key=value&key=value 식으로 사용한다.

반응형

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

[네트워크] HTTP의 기초 - 4  (0) 2017.04.18
[네트워크] HTTP의 기초 - 3  (0) 2017.04.18
[네트워크] HTTP의 기초 - 1  (0) 2017.04.18
[기술의역사] C++ (C 플러스 플러스)  (0) 2017.04.18
[기술의역사] C언어  (0) 2017.04.18

댓글