인프런 커뮤니티 질문&답변

whsrpdla님의 프로필 이미지
whsrpdla

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

웹 브라우저 요청 흐름

3 hand shake 관련 질문입니다

작성

·

315

1

클라이언트가 서버에 요청을 보내기 위해서

APP계층에서 메세지를 작성 후 소켓라이브러리를 이용해서 3hand shake로 가상연결 후, tcp/ip계층에서 패킷을 생성해서 요청을 전송하는 것으로 이해했습니다.

궁금한 점은

1. 서버에서 요청을 받았을 때도 마찬가지로 클라이언트와 3 hand shake 를 하고 응답을 보내나요?

2. 서버에서는 3 hand shake를 하지 않는다면 어떻게 가상연결 상태인 것을 알 수 있나요?

3. 서버에서 가상연결 상태인 것을 알고있다면, http는 비연결성이 아닌 건가요?

감사합니다.

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. whsrpdla님

1. 서버에서 요청을 받았을 때도 마찬가지로 클라이언트와 3 hand shake 를 하고 응답을 보내나요?

-> 아닙니다. 3 hand shake는 클라이언트와 서버가 서로 연결을 맺는 과정이고 클라이언트와 서버 사이에서 한번 발생합니다.

2. 서버에서는 3 hand shake를 하지 않는다면 어떻게 가상연결 상태인 것을 알 수 있나요?

-> 3 hand shake를 하면 클라이언트와 서버 모두 서로 IP, PORT를 알고 있습니다.

3. 서버에서 가상연결 상태인 것을 알고있다면, http는 비연결성이 아닌 건가요?

-> HTTP는 TCP로 3 hand shake를 해서 연결을 맺고 그 다음에 클라이언트에서 서버로 데이터를 요청하고, 서버가 응답을 하고나서 연결을 끊게 됩니다. 연결을 계속 유지하지 않습니다. 요청, 응답후에 연결을 제거합니다.

감사합니다.

whsrpdla님의 프로필 이미지
whsrpdla
질문자

친절한 답변 정말 감사합니다 김영한님

2번 질문에 대한 추가 질문을 드리고 싶습니다.

2-1. 클라이언트와 서버가 서로 IP, PORT 를 알고 있다는 것이 메모리에 저장을 해둔다는 개념인가요? 조금 더 구체적으로 설명해주실 수 있을까요

감사합니다.

김영한님의 프로필 이미지
김영한
지식공유자

whsrpdla님 운영체제마다 동작방식이 다른데요. 결론적으로 OS가 내부에서 저장하고 관리한다고 이해하시면 됩니다.

감사합니다.

whsrpdla님의 프로필 이미지
whsrpdla
질문자

답변감사합니다

OS가 가상연결을 유지하고 끊는다고 이해하면 될까요?

감사합니다!

김영한님의 프로필 이미지
김영한
지식공유자

네 OS를 통해서 연결을 유지합니다.

연결을 끊는 것은 애플리케이션에서 해당 소켓의 연결을 끊어달라고 요청합니다.

감사합니다.

whsrpdla님의 프로필 이미지
whsrpdla

작성한 질문수

질문하기