소켓이란? 소켓통신과 HTTP통신

minisoo·2023년 3월 7일
0
post-thumbnail

1. 소켓이란?

  • 전송 계층과 응용 프로그램 사이의 인터페이스 역할
    - OSI7 계층 중 응용 계층에 속하는 프로세스들은 데이터 송수신을 위해 반드시 소켓을 거쳐 전송 계층으로 데이터를 전달해야 한다.
  • 네트워크 상에서 돌아가는 두 개의 프로그램 간 양방향 통신의 하나의 엔트 포인트이다.
    - 여기서 엔트 포인트는 아이피 주소와 포트 번호의 조합으로, 모든 TCP 연결은 2개의 앤드 포인트로 유일하게 식별될 수 있다.
  • 소켓은 포트 번호에 바인딩되어 TCP 계층에서 데이터가 전달되어야 하는 프로그램을 식별할 수 있게 한다.

2. 소켓통신

  • 서버와 클라이언트 양쪽에서 서로에게 데이터를 전달하는 방식의 양방향 통신이다.
  • 실시간으로 데이터를 주고 받아야 하는 경우 connection을 자주 맺고 끊는 HTTP 통신보다 소켓통신이 적합하다.
  • 소켓 통신 흐름
    1. server에서 port를 열고 client의 접속을 기다림
    2. client는 server의 ip와 port에 접속하여 통신이 연결
    3. server와 client 간의 통신은 send, receive의 형태로 주고 받음
    4. 통신이 끝나면 close()로 접속 종료

3. HTTP통신

  • 클라이언트의 요청이 있을 때 서버가 응답하는 방식으로 단방향 통신이다.
  • 서버의 응답에는 응답 코드가 같이 전송되며, 사용자는 응답 코드와 메세지 응답으로부터 오는 메세지 바디를 통해 요청 값을 전달 받는다.

To Be Continued ...🫠 어렵다,,,ㅠㅠㅠ
다음 포스팅은 웹 소켓이랑 소켓 종류들 작성해야지,,🫥


참고자료
https://wildeveloperetrain.tistory.com/122
https://velog.io/@newdana01/%EC%86%8C%EC%BC%93%EC%9D%B4%EB%9E%80-%EC%A2%85%EB%A5%98-%ED%86%B5%EC%8B%A0-%ED%9D%90%EB%A6%84-HTTP%ED%86%B5%EC%8B%A0%EA%B3%BC%EC%9D%98-%EC%B0%A8%EC%9D%B4
https://kotlinworld.com/m/75

profile
코딩하는 돌멩이 👻

0개의 댓글