응용계층에는 웹페이지에 접속하기 위한 프로토콜이 존재한다.
바로 HTTP (Hyper Text Transfer Protocol) 이다.
HTTP 는 웹에서 하이퍼텍스트 문서를 요청하고 응답하기 위한 프로토콜이다.
웹페이지를 접속하는 구조와 과정을 먼저 알아보자.
웹 브라우저를 통해 사용자가 보고 싶은 특정 URL을 요청하면
웹서버에서는 그에 상응하는 HTML 문서로 응답해준다.
이때 웹상에서 데이터를 전송하는 프로토콜인 HTTP가 이용된다.
HTML 은 텍스트, 이미지등의 데이터를 문서 형태로 응답할 수 있는 일종의 웹 문서이다.
해당 HTML 태그를 작성하여 웹 브라우저를 통하여 이미지나 텍스트를 볼 수 있다.
이렇게 웹상에서 데이터를 전송하는데 HTTP라는 프로토콜이 이용된다.
HTTP는 웹에서 하이퍼텍스트 문서를 요청하고 응답하기 위한 프로토콜이다.
HTTP를 통하여 웹사이트를 구성하는 HTML 파일을 전송하며
HTML 파일 전송은 HTTP 요청과 응답을 주고받으며 이루어진다.
기본적으로 HTTP는 TCP 80번 포트를 사용하여 요청과 응답 메시지를 교환한다.
웹브라우저의 데이터 전송 간에 필요한 URL 에 대해서 살펴보자.
맨 앞의 HTTPS는 보안 프로토콜로 해당 파트는 브라우저가 어떤 프로토콜을 사용하는지 나타내는 부분이다.
HTTPS는 기존 HTTP의 보안 버전이라고 보면된다.
그다음은 호스트 이름이다.
해당 호스트 이름은 어떤 웹 서버를 필요로 하는지 나타낸다.
호스트 이름 뒤에는 경로명을 나타낸다.
위의 그림의 상황은 웹 브라우저에서 웹 서버로 HTTP 리퀘스트를 보내는 상황이다.
HTTP Request는 리퀘스트 라인, 메시지 헤더, 엔티티 바디 등의 부분으로 나뉜다.
HTTP request를 확대해보면 다음과 같은 여러 줄의 정보를 볼 수 있다.
리퀘스트 라인은 메서드, 공백, URI, HTTP 버전으로 표기된다.
리퀘스트 라인에서의 메소드는 서버에 대한 요청을 나타내며
주요 HTTP 메서드는 다음과 같다.
주요 HTTP 메소드 | 설명 |
GET | URI 로 지정한 데이터를 조회 |
POST | 메시지 바디를 통해 서버에 데이터 전송 및 처리 |
PUT | 서버에 파일 전송 |
DELETE | 서버의 파일 삭제 |
HEAD | GET 요청에서 BODY 를 제외하고 헤더만 가져옴 |
위의 그림의 상황은 웹 브라우저에서 웹 서버로 HTTP 리스폰스를 받는 상황이다.
HTTP Response 는 리스폰스 라인, 메시지 헤더, 엔티티 바디 등의 부분으로 나뉜다.
HTTP Respnse를 더 확대해서 확인하면 다음과 같은 여러 줄의 정보를 볼 수 있다.
최상단에 존재하는 HTTP/2 200 OK라고 표기된 부분이 리스폰스 라인이다.
그 아래에는 메시지 헤더가 된다.
리스폰스 라인은 버전, 상태코드, 설명문으로 표기된다.
이중 상태코드는 요청 메시지에 대한 웹서버의 처리 결과를 나타낸 세 자리 숫자이며
다음표와 같다.
상태코드 | 설명 |
1xx | 추가 정보 |
2xx | 성공, 요청이 처리되었음을 의미함 |
3xx | 리다이렉션, 서버에서 새 URL 로 리다이렉트를 유도함 |
4xx | 클라이언트 에러, 클라이언트 측의 요청에 문제가 있어 처리되지 못하는 상태 |
5xx | 서버 에러, 서버 측에 문제가 있어서 처리하지 못하는 상태 |
보통 100번 범위는 정보를, 200번 범위는 성공적인 요청을
300번 범위는 다른 URL로 재지정, 400번 범위는 클라이언트 에러,
500번 범위는 서버의 에러를 뜻한다.
웹서버에서 가장 많이 반환되는 코드는 200이지만
정상적인 처리이므로 이용자 입장에서는 보는 경우가 거의 없다.
'네트워크' 카테고리의 다른 글
[네트워크] 프록시 서버 (0) | 2022.11.18 |
---|---|
[네트워크] Cookie (0) | 2022.11.17 |
[네트워크] DHCP (Dynamic Host Configuration Protocol) (2) | 2022.11.14 |
[네트워크] UDP (0) | 2022.10.11 |
[네트워크] PORT (0) | 2022.10.10 |