📜 TIL

[Android] Network

둥굴둥굴둥굴레차 2022. 10. 25. 16:08

🎈 Network

두대 이상의 컴퓨터를 연결하는 것

 

네트워크가 필요한 이유

1) 클라이언트(앱) -> 인터넷 -> 서버 : 요청
-> 내가 지금 화면을 그리려고 하는데 데이터좀 줘

2) 서버 -> 인터넷 -> 클라이언트(앱) : 응답

-> 화면을 그릴 수 있는 데이터 여기있어

 

네트워킹

서버와 클라이언트의 의사소통

네트워크 약속(프로토콜)이 존재

 

대부분의 앱들이 정보를 서버로 부터 받아서 화면을 구성한다

 

문제점

매번 똑같은 화면을 그릴 때 매번 똑같은 데이터를 전달받아야 한다

-> 낭비다

 

해결책

캐싱

한번 받은 데이터를 클라이언트가 로컬 데이터베이스에 저장

다시 필요하면 서버에 요청할 필요없이 로컬 데이터베이스를 이용

 

단점

캐싱 구현 난이도 높음

 

프로토콜의 종류

  • FTP : 파일 전송 규약
  • SMTP : 메일 전송 규약
  • HTTP : 인터넷 서비스 규약 -> 우리가 배워야할 규약

 

Request

클라이언트가 서버에게 보내는 요청

이때 HTTP 규약을 따라야 한다

 

Request Header

  • 요청에 대한 추가정보를 기입하는 곳
  • 서버 개발자들이 특정한 값을 header에 실어 보내달라 요청할 때 있다

 

image

 

Request Body

  • 추가적인 요청이 있을 때 추가적인 정보를 기재하는 곳
    • 예) 모든 학생들의 정보가 아닌 id가 1인 학생의 정보만 가져와달라는 요청
  • JSON형태로 보낸다

 

image

 

Request Method

  • GET, POST, DELETE, PUT, HEAD, CONNECT ...등

 

image

 

Response

서버가 클라이언트에 보내는 응답

 

Response Code

  • Status 코드
    • 200(성공)
    • 201(너가 요청한 요구사항 잘 처리 되었음)
    • 401(너는 요청에 대한 결과를 볼 권한이 없다)
    • 404(not found, 너가 보낸 요청은 잘못되었다)

 

image

 

 

 

[참고] HTTP 응답코드에 대한 분류

 

image

 

JSON

키-벨류 방식

  • {} : 객체 표현
  • [] : 배열 표현