7계층 프로토콜 HTTP

oogu ㅣ 2022. 3. 10. 17:55

HTTP(Hyper Text Transfer Protocol)

www에서 쓰이는 핵심 프로토콜로 문서의 전송을 위해 쓰이며, 오늘날 거의 모든 웹 애플리케이션에서 사용되고 있다.

Request/Response 동작에 기반하여 서비스 제공한다.

HTML, Javascript, CSS을 웹 표준이라고 하는데 웹 표준을 서버에서 클라이언트로 가져오는 프로토콜을 HTTP라고 한다.

 

네트워크 부하가 심한 HTTP/1.0

3Way Handshake를 하고 그다음에 HTTP 요청을 보내게 된다. 하지만 요청 한 번 보내고 응답 한 번 받으면 연결이 끊긴다. 따라서 다시 뭔가 받으려면 3Way Handshake 하고 받아야 한다. -> 비효율적이다.

 

1.0의 문제점을 보완한 HTTP/1.1

연결 한 번 했으면 끊지말고 받아갈 거 다 받아가고 끊어라

 

 

HTTP 요청 프로토콜의 구조

Request Line

 

Headers

옵션역할, 여러 가지가 추가될 수 있고 아닐 수 도 있다. 필수적으로 들어가는 헤더가 존재한다.

Body

데이터를 요청할 때 추가적인 데이터

 

요청 프로토콜

 

Request Line의 구조

Request Line
요청 타입

GET과 POST가 중요하다. 나머지 요청 타입은 보안상 막아 둔다.

 

GET은 서버에서 데이터를 요청할 때 사용하지만 요청하면서 데이터를 보낼 수 도 있다.

POST은 서버에 데이터를 보낼 때 사용하지만 데이터를 보내면서 요청을 할 수 있다.

그러면 둘의 차이점은 무엇인가?

 

GET 프로토콜
POST 프로토콜

GET 방식은 데이터를 서버로 보낼 때 URI 부분(주소)에 포함시켜서 보낸다.

POST방식은 URI(주소)에 포함시키는게 아니라 Body에 포함시켜서 보낸다.

중요한 데이터(패스워드)는 POST방식으로 Body 숨겨서 보낸다.

 

 

URI(Uniform Resource Identifier)의 구조

자원을 나타내는 id값, 받고싶은 그림, html 페이지 등을 나타내는 주소 값이다.

 

scheme

요청하는 형식을 지정한다. 7계층 프로토콜

IP 주소  :포트

보통 IP 주소 대신 도메인 주소를 쓰는데 내부적으로 도메인 주소를 IP 주소로 바꾼다. -> DNS 서버

포트번호를 지정하지 않으면 80, 443 포트를 알아서 써준다.

PATH

어디에 저장되어 있는 무슨 파일

query

클라이언트가 파일(path)에게 데이터(query)를 전달해준다.

 

 

HTTP 응답 프로토콜의 구조

사용자가 볼 웹 페이지를 담고있는 응답 프로토콜 구조

 

Status Line

상태 코드와 상태 문구는 한 쌍이다

 

상태 코드
성공적인 통신
클라이언트의 실수, 잘못, 오류 400번대
서버의 실수, 잘못, 오류 500번대

 

 

HTTP 헤더 포맷

Request와 Response 둘 다 사용할 수 있는 일반헤더

각자 사용 할 수 있는 요청, 응답헤더

특별한 경우 사용하는 항목 헤더

 

일반 헤더

일반적인 정보를 담고 있는 일반 헤더

요청 헤더

클라이언트 정보를 담고 있는 요청 헤더

Host 헤더는 요청 프로토콜을 보낼때 필수로 보내야한다.

 

응답 헤더

서버 정보를 담고 있는 응답 헤더

 

'네트워크 기초' 카테고리의 다른 글

NAT와 포트포워딩  (0) 2022.03.09
TCP 상태전이도  (0) 2022.03.08
TCP를 이용한 통신과정  (0) 2022.03.08
TCP 프로토콜 구조와 TCP의 플래그  (0) 2022.03.08
비연결지향형 UDP 프로토콜  (0) 2022.03.08