cs스터디 - (3) 네트워크

Yuri JI·2022년 9월 12일
0

cs스터디

목록 보기
3/9

이 포스트는 해당 링크를 참고하여 작성했습니다.

HTTP의 GET과 POST 비교

GETPOST
사용목적서버의 리소스에서 데이터를 요청할 때(SELECT에 가까움)서버의 리소스를 새로 생성하거나 업데이트할 때(CREATE에 가까움)
요청에 BODY 유무없음, URL 파라미터에 요청하는 데이터를 담아보냄있음, BODY에 데이터를 담아 보낸다.
멱등성(idempotent)멱등멱등X, 서버의 값이나 상태를 변경한다.

💡 멱등이란?
멱등의 사전적 정의는 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다.
GET은 리소스를 조회한다는 점에서 (SELECT 느낌), 여러 번 요청하더라도 응답이 같을 것이다.
POST(CREATE 느낌)는 리소스를 새로 생성하거나 업데이트할 때 사용되기때문에 멱등이 아니라고 볼 수 있다.

  • GET 특징
    • 캐시가 가능하다.
    • 브라우저 히스토리에 남는다.
    • 북마크 될 수 있다.
    • 길이 제한이 있다. (표준 길이가 정해진 것은 아니나, 브라우저마다 제한이 다르다.)
    • 중요한 정보를 다루면 안된다.
      • GET 요청은 파라미터에 다 노출된다.
    • 데이터를 요청할때만 사용한다.
  • POST 특징
    • 캐시되지 않는다.
    • 브라우저 히스토리에 남지 않는다.
    • 북마크 되지 않는다.
    • 데이터 길이에 제한이 없다.
      • 데이터를 전송할 때 길이 제한이 따로 없어 용량이 큰 데이터를 보낼 때 사용하거나 GET처럼 데이터가 외부적으로 드러나는 것이 아니라 보안이 필요한 부분에 사용된다. (⭐️ 데이터를 암호화하지 않으면 body의 데이터도 볼 수 있는 것은 똑같다.)

TCP 3-way Handshake

  • TCP 3-way Handshake란?

    • TCP는 장치들 사이에 논리적인 접속을 성립하기 위하여 tcp-3 way handshake를 사용한다.
    • TCP/IP 프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기위해 상대방 컴퓨터의 사전에 세션을 수립하는 과정을 의미한다.

  • STEP 1
    클라이언트 A는 서버 B에 접속을 요청하는 SYN 패킷을 전송.
    그 다음 A는 SYN를 보내고 SYN/ACK 응답을 기다리는 SYN_SENT 상태가 된다.

  • STEP 2
    SYN 요청을 받은 서버 B는 A에게 요청을 수락한다는 ACK와 SYN flag가 설정된 패킷을 발송한다.
    그 다음 B는 클라이언트 A가 다시 ACK로 응답하기를 기다리는 SYN_RECEIVED 상태가 된다.

  • STEP 3
    A는 B에게 ACK 패킷을 보내고 이후로부터는 연결이 이루어지고(세션 수립) 데이터가 오갈 수 있다. 이때 서버 B의 상태가 ESTABLISHED 이다.

TCP와 UDP

공통점

TCP / UDP
포트 번호를 이용하여 주소를 지정
데이터 오류 검사를 위한 체크섬이 존재

차이점

TCPUDP
연결이 성공해야 통신 가능(연결형 프로토콜)연결없이 통신 가능(비연결형 프로토콜)
데이터의 경계를 구분하지 않음(Byte-Stream Service)데이터의 경계를 구분함(Datagram Service)
신뢰성있는 데이터 전송(데이터의 재전송 존재)비신뢰성 데이터 전송(데이터의 재전송이 없음)
일대일 통신 (Unicast)일대일(Unicast), 일대다(Broadcast), 다대다(Multicast)통신

🔖 참고 사이트

https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Network

https://noahlogs.tistory.com/35
https://mindnet.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-22%ED%8E%B8-TCP-3-WayHandshake-4-WayHandshake

https://velog.io/@hidaehyunlee/TCP-%EC%99%80-UDP-%EC%9D%98-%EC%B0%A8%EC%9D%B4

profile
안녕하세요 😄

0개의 댓글