https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network
클라이언트에서 서버로 요청할 때 사용하는 HTTP 메소드 방식
요청하는 데이터가 url에 key와 value가 결합된 쿼리 스트링 형태로 HTTP Request Message의 Header에 담겨 전송된다.
전송할 수 있는 데이터의 크기가 제한적이다.
url에 전송하는 데이터가 노출되어 보안에 취약하다.
(예시 https://recordboy.github.io/login?id=user&pw=1234)
참고
https://velog.io/@recordboy/GET%EA%B3%BC-POST-%EC%B0%A8%EC%9D%B4
클라이언트와 서버가 통신을 하기전 정확한 전송을 보장하기 위해 컴퓨터간 세션을 수립하는 과정으로서 TCP 프로토콜에서 신뢰성을 보장하기 위해 사용됩니다.
클라이언트는 서버에 접속을 요청하는 SYN패킷을 보내고 SYN/ACK 응답을 기다리는 SYN_SENT상태가 된다.
서버는 요청에 대한 응답 ACK와 SYN패킷을 보내고 클라이언트가 ACK로 응답하기를 기다린다. 이때 서버는 SYN_RECEIVED상태가 된다.
클라이언트는 서버에 ACK를 보내고, 이후부터 연결이 이루어지고 데이터가 오간다. 이때 서버는 ESTABLISHED 상태다.
참고
https://ciscoking.tistory.com/4
https://djvaspirit.tistory.com/23
https://velog.io/@ss-won/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-TCP-3-way-handshake
네트워크 전송 계층에서 데이터 전송을 위해 사용하는 프로토콜
인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜
데이터를 데이터그램(독립적인 관계를 지니는 패킷) 단위로 처리하는 프로토콜
*패킷: 인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송을 하는데 이때, 이 조각을 패킷이라고 합니다.
참고
https://mangkyu.tistory.com/15
네트워크 통신의 7단계 과정
7 계층(응용 계층): 사용자와 직접 상호작용하는 응용 프로그램들이 포함된 계층
6 계층(표현 계층): 데이터의 형식(Format)을 정의하는 계층
5 계층(세션 계층): 컴퓨터끼리 통신을 하기 위해 세션을 만드는 계층
4 계층(전송 계층): 최종 수신 프로세스로 데이터의 전송을 담당하는 계층
3 계층(네트워크 계층): 패킷을 목적지까지 가장 빠른 길로 전송하기 위한 계층
2 계층(데이터링크 계층): 데이터의 물리적인 전송과 에러 검출, 흐름 제어를 담당하는 계층
1 계층(물리 계층): 데이터를 전기 신호로 바꾸어주는 계층
HTTP는 평문 데이터를 전송하는 프로토콜이기 때문에, HTTP로 비밀번호나 주민번호 등을 주고 받으면 제3자에 의해 조회될 수 있습니다. 이러한 문제를 해결하기 위해 HTTP에 암호화가 추가된 프로토콜이 HTTPS입니다.
서로 다른 시스템들 사이에서 데이터를 주고 받기 위한 프로토콜
-웹 서핑을 할 때 서버에서 여러분의 브라우저로 데이터를 전송해 주는 용도로 가장 많이 사용
일반 HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다.
SSL(보안 소켓 계층)을 사용함으로써 이 문제를 해결