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의 구조
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
상태 코드와 상태 문구는 한 쌍이다
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 |