(TIL) 20220329, Persistent/ Non-Persistant HTTP

2022. 3. 30. 02:02TIL(Today I learned)

반응형

🏴󠁩󠁤󠁪󠁷󠁿Facts(한 것)


  • 백준 알고리즘 풀기
  • 네트워크 수업 듣기
  • 운영체제 책 읽고 수업듣기
  • 네트워크 과제 하기
  • 오전 운동

 

🏴󠁩󠁤󠁪󠁷󠁿Findings(배운 것)


HTTP connection에는 두가지가 있다.

하나는 Non-persistent HTTP, 다른 하나는 persistent HTTP.

 

Non-persistent HTTP 는 최대 한 개의 대상에 대해서 한 개의 TCP 연결을 한다.

이 말은 10개의 파일을 다운로드 받는다고 생각하면, TCP 연결이 생성되었다가 끊어졌다를 10번 반복한다는 뜻이다.

 

Persistent HTTP는 여러개의 대상에 대해서 한개의 TCP 연결을 한다.

위의 예와는 반대로 10개의 파일을 다운받는, 100개를 받든, TCP 연결/끊김은 한 번이다.

 

그럼 뭐가 더 좋을까?

 

사실 뭐가 더 좋은지 모른다. 경우에 따라 다르니까.

 

그럼 뭐가 더 빠를까?

 

단순히 생각하기에 persistent HTTP가 좀 더 빨라 보인다. 

한 번 연결하고 모두 다운받고 끄면 되니까.

 

근데 만약에 non-persistent HTTP가 작업을 병렬적으로 처리할 수 있다면 어떻게 될까?

그럼 non-persistent HTTP가 더 빠를 수도 있다.

 

 

단순히 같은 시간에 대해서 속도를 비교한다면, 시간이 길어질 수록 Persistent HTTP가 빠르다.

 

Persistent HTTP는 맥시멈 속도까지 선형그래프를 그리며 올라간 후 맥시멈 속도에 근접하게 속도를 유지한다.

하지만 Non-persistent HTTP는 짧은 연결과 끊김을 반복하기 때문에 높은 속도까지 올라갈 여유가 없다.

 

 

HTTP response time을 계산할 때 등장하는 RTT(round-trip time)이라는 개념이 있다.

RTT는 요청을 보내고 응답을 받기까지 걸리는 시간이다.

 

그럼 Non-persistent HTTP응답시간은 어떻게 계산할 수 있을까?

요청과 응답에 필요한 RTT가 2번 반복됨으로 2RTT가 필요하고, 파일을 다운 받는 시간이 필요할 것이다.

그렇기 때문에 2* RTT + file transmission time으로 계산할 수 있다.

만약 파일을 10번 다운 받는다면 2*RTT + 10 * file transmission time이 되겠다.

 

Persistent HTTP는 한번의 연결 후 파일 다운 받는 시간만 필요하기 때문에

2*RTT + file transmissino time이 되겠다.

 

 

🏴󠁩󠁤󠁪󠁷󠁿Feeling(느낀 점)


어려운 길만 골라가는 내 인생 너무 재밌다

 

 

🏴󠁩󠁤󠁪󠁷󠁿Affirmation(자기선언)


  • 매일 알고리즘 문제 1문제 이상 풀기 => 오늘 2문제 해결
  • 수업 공부한 것은 일주일 내에 포스팅하기 => OSI는 못했지만 HTTP 포스팅
  • 자바 8버전에 익숙해지기 => 자기전에 자바 9 책 읽을 예정

 

🏴󠁩󠁤󠁪󠁷󠁿여담


 
반응형

'TIL(Today I learned)' 카테고리의 다른 글

(TIL) 20220410, 소켓 프로그래밍  (0) 2022.04.11
(TIL) 20220331  (0) 2022.04.01
(TIL) 20220328, @Override  (0) 2022.03.29
(TIL) 20220326, 라인 코테 후기, agile process  (0) 2022.03.27
(TIL) 20220325  (0) 2022.03.27