1. 사용자가 URL주소 입력
2. DNS서버에 의해 IP주소 찾음
IP : 각각의 패킷을 상대방에게 전달하는 역할
IP주소: 컴퓨터 네트워크에서 장치들이 서로 인식하기 위한 특수번호
이 번호를 이용해서 누가 보냈고, 누가 받아야하느지 식별해서 데이터를 전달한다(변경가능)
MAC주소 : 네트워크 인터페이스에 할당된 고유 식별자(변경불가)
ARP(Address Resolution Protocol : 주소 결정 프로톸톨)을 이용해서 통신을 한다.
데이터를 보낼 목적지를 MAC주소를 사용해서 찾아감
3. 웹서버와 TCP연결시도
TCP : Transmission Control Protocol 데이터를 패킷으로 분해하고, 정확하게 도착했는지 확인하는 역할
3-way-handshaking : 클라이언트와 서버간에 신뢰성 있는 연결을 위한 3번의 패킷교환과정
1. Client->Server : 처음으로 패킷을 보낸다(SYN)
2. Sever ->Client : Client가 보낸거 잘받았고(ACK), 내가 처음으로 패킷을 보낸다(SYN)
3. Client-> Server : Server가 보낸거 잘받았고(ACK) 이제 서로 데이터(HTTP메세지)를 보낼 준비 완료
4. 웹서버와 http메세지 주고받음
HTTP : Hyper Text Transfer Protocol, Hyper Text를 전송하기 위한 프로토콜, Request&Response 주고받는 역할
클라이언트가 서버에 요청을 보내면,
그에 맞는 응답 결과를 돌려주고,
클라이언트는 사용자에게 서버로부터 응답받은 결과를 보여주는 것
HTTP통신 특징 : 기본적으로 연결이 되어 있지 않다.
클라이언트가 서버에 요청을 보내고 응답을 받으면, 그것으로 통신이 종료된다
서버는 클라이언트가 웹 사이트에 접속해 있는지, 알 수 없다.
서버에 요청을 보내고, 서버로부터 필요한 파일을 모두 받고 나면 접속이 종료(Connection Close)
요청을 보내고 응답을 받을 때 우리는 그 정보들을 패킷(Packet)이라는 작은 조각에 실어서 보내게 됩니다.
4-1. 클라이언트 -> 서버 : request 전송
요청메세지 : 메소드/ 요청UTL / HTTP버전
4-2. 서버 -> 클라이언트 : response 받음
응답메세지 : HTTP버전/상태코드/사유구절
HTTP상태코드
https://pearlluck.tistory.com/104
HTTP헤더
Coonection keep-alive 옵션 : 일반적으로 클라이언트 서버간의 통신은 한번 맺고 끝나는데 이를 재활용하기 위한 목적
Content-Type : 응답하는 컨텐츠의 유형
Cache-control : 캐쉬사용을 어떻게 할지 제어
5. 웹서버와 TCP연결 해제
4-way-handshaking : 클라이언트와 서버간에 양쪽다 연결을 종료시킨다
1. Client->Server : 처음으로 종료한다는 패킷을 보낸다(FIN)
2. Sever ->Client : Client가 보낸거 잘받았고(ACK)
3. Sever ->Client : Server가 처음으로 종료한다는 패킷을 보낸다(FIN)
4. Client-> Server : Server가 보낸거 잘받았고(ACK) 이제 서로연결 종료한다.
출처: https://cordelia273.space/11 [세상의 모든 지식]
그림 출처 : https://velog.io/@conatuseus/2019-09-10-2009-%EC%9E%91%EC%84%B1%EB%90%A8-xsk0ds2eqf
'🌱 Computer Science > Network' 카테고리의 다른 글
[Web] CORS 이슈 | setAllowOrigins Preflight Request (0) | 2021.04.14 |
---|---|
[Web] Http통신 vs Socket통신 (WebSocket) (0) | 2021.04.06 |
[NetWork/Web] HTTP통신 VS 소켓통신 (0) | 2020.04.11 |
[NetWork] TCP/IP 프로토콜과 OS 7 Layer (0) | 2020.04.10 |
[NetWork/Web] HTTP 상태코드 정리 Status Code (0) | 2020.03.23 |
[NetWork] 동기(sync) vs 비동기(async) (0) | 2020.01.25 |