본문 바로가기
2023-1/컴퓨터네트워크및실습

HTTP

by 철없는민물장어 2023. 6. 13.
728x90
반응형
더보기

application 레이어의 패킷 Messsage이다.

 

웹페이지는 여러가지 오브젝트들로 구성되어있다. 각각은 여러개의 다른 웹 서버에 저장되어있다. 

오브젝트들을 요청하는 절차, 포맷이 HTTP이다.

 

HTTP는 TCP를 기반으로 한다.

client는 request를 보내고 server는 response를 보냄.

 

Non-persistent HTTP vs Persistent HTTP

유지가 되지 않는 HTTP, 유지가 되는 HTTP

Non-persistent HTTP는 오브젝트를 하나 받을 때마다 TCP연결을 하고 끊는다. 매번 새로운 TCP연결이 필요하다.

반면 Persistent HTTP는 TCP연결이 유지되므로 한번의 연결로 여러개의 오브젝트를 받을 수 있다.

 

 

Non-persistent HTTP

3-hand handshaking.. 후 커넥션, sender가 request message를 보내고 서버가 response messge를 보내면 TCP 커넥션을 끊는다. 이 방법은 현시대에 사용되지 않는다. 전송마다 2RTT+file transmission time이 필요하다.

 

persistent HTTP

3-way handshaking 후 커넥션. 커넥션 후 모든 통신이 완료될때까지 연결을 끊지 않음.

1RTT+file transmission time이 소요됨.

 

HTTP Request Message

request line 이후에 메타데이터를 header line들로 작성함.

 

HTTP Response Message

응답코드: status code가 포함됨

 

HTTP는 stateless하다.

접속을 한번 끊으면... 이 클라이언트가 다음에 또 요청해도 처음온 클라이언트처럼 동작.

(쿠키 기술이 사용되면 stateless하지 않을 수 있음)


HTTP는 인터넷에서 웹 페이지가 작동하는 방식을 정의하는 Application 계층의 프로토콜입니다. 웹 페이지는 다양한 오브젝트(이미지, 스타일 시트, JavaScript 파일 등)로 구성되며, 이러한 오브젝트들은 종종 여러 개의 다른 웹 서버에 저장되어 있습니다. HTTP는 이러한 오브젝트들이 클라이언트와 서버간에 어떻게 전송되는지 정의합니다.

HTTP는 TCP(Transmission Control Protocol)를 기반으로 합니다. 이는 HTTP가 TCP의 신뢰성 있는 데이터 전송 기능을 활용하여 정보를 전달하게 됩니다. HTTP에서 클라이언트는 웹 서버에 '요청(request)'을 보내고, 웹 서버는 이에 대한 '응답(response)'을 보냅니다.

HTTP는 크게 Non-persistent HTTP와 Persistent HTTP 두 가지 방식으로 동작할 수 있습니다.

Non-persistent HTTP는 클라이언트가 각 오브젝트를 요청할 때마다 새로운 TCP 연결을 생성합니다. 요청이 끝나면 연결이 끊어지기 때문에, 다음 오브젝트를 요청하기 위해서는 다시 새로운 TCP 연결을 생성해야 합니다. 이 방식은 매번 연결을 생성하고 끊는 과정으로 인해 비효율적일 수 있습니다.

반면에 Persistent HTTP는 한 번의 TCP 연결로 여러 개의 오브젝트를 요청하고 받을 수 있습니다. 요청한 오브젝트가 모두 전송된 후에야 TCP 연결이 끊어집니다. 이 방식은 여러 번의 오브젝트 요청에 대해 연결을 유지하므로, 연결 생성과 종료에 대한 오버헤드가 줄어들어 효율적입니다.

HTTP 요청 메시지는 '요청 라인(request line)'으로 시작하며, 이는 요청하는 오브젝트와 HTTP 버전을 명시합니다. 그 다음으로는 헤더 라인들이 이어집니다. 헤더 라인들은 요청에 대한 추가 정보(예: 클라이언트의 유저 에이전트, 요청하는 오브젝트의 유형 등)를 제공합니다.

HTTP 응답 메시지는 상태 코드를 포함합니다. 상태 코드는 요청이 성공적으로 처리되었는지, 아니면 어떠한 문제가 있는지 등을 알려주는 3자리 숫자입니다.

마지막으로, HTTP는 기본적으로 'stateless' 프로토콜입니다. 이는 서버가 이전에 보낸 요청에 대한 정보를 유지하지 않는다는 것을 의미합니다. 즉, 클라이언트가 두 번의 연속적인 요청을 보내더라도, 서버는 이 두 요청이 같은 클라이언트로부터 왔음을 인지하지 못합니다. 이러한 특성 때문에 웹에서 '상태'를 유지하기 위해 쿠키 같은 기술이 사용됩니다. 쿠키를 통해 서버는 이전 요청과 현재 요청이 동일한 클라이언트로부터 온 것임을 알 수 있습니다.

728x90
반응형

'2023-1 > 컴퓨터네트워크및실습' 카테고리의 다른 글

Cookie/Web-caching/DNS  (3) 2023.06.14
TCP congestion control  (0) 2023.06.12
Connection-oriented transport: TCP, TCP flow control,..  (1) 2023.06.11
Go-Back-N, Selective Repeat  (0) 2023.06.11
Reliable Data Transfer(RDT)  (0) 2023.06.11

댓글