네트워크(23)
-
[네트워크] 전송 방식에 대한 나름의 이해
전송 방식에는 다음의 4가지가 있다. 1. 단순 전송 2. 압축 전송 3. 분할 전송 4. 범위 전송 1. 단순 전송은 데이터를 한번에 보낸다. Content-Length를 넣어준다. 2. 압축 전송은 gzip과 같은 것으로 압축해서 보낸다. Content-Encoding과 Content-Length를 넣어준다. 3. 분할 전송은 chunck로 나누어서 여러번 보낸다. Content-Length를 각 청크마다 넣어주기 때문에 따로 적어줄 필요가 없다. 4. 범위 전송은 범위를 전송한다. 주로 데이터를 보내다가 끊겼을때 끊긴 부분부터 보내줄때 사용한다. Content-Range: bytes 1001-2000 / 2000 등과 같이 사용한다. Reference https://www.inflearn.com/c..
2023.11.09 -
[네트워크] 협상에 대한 나름의 이해
협상(콘텐츠 네고시에이션)은 클라이언트가 선호하는 표현으로 서버에 요청하는 것이다. 다음과 같이 4가지가 있다. Accept: 클라이언트가 선호하는 미디어 타입 Accept-Charset: 클라이언트가 선호하는 문자 인코딩(ex, utf-8) Accept-Encoding: 클라이언트가 선호하는 인코딩 방식(ex, gzip) Accept-Language: 클라이언트가 선호하는 언어 협상 헤더는 요청에만 사용한다. 요청할때 우선순위를 나타낼 수 있다. 그러면 서버는 우선순위에 따라 콘텐츠를 제공한다. 다음의 것들이 있다. 1. Quality Values(q) 사용 클수록 높은 우선순위이다. 2. 구체적일수록 높은 우선순위이다. 3. 구체적인 것과 q가 있다면 일치하는 요청의 q를 사용하여 우선순위를 매긴다...
2023.11.09 -
[네트워크] HTTP 헤더에 대한 나름의 이해
HTTP 헤더는 다음으로 분류된다. General 헤더: 메시지 전체에 적용되는 정보 Request 헤더: 요청 정보 Response 헤더: 응답 정보 Entity 헤더: Entity에 대한 정보 HTTP 엔티티 헤더는 Entity에 대한 정보를 담고 있다.(길이, 데이터 유형, 압축 정보 등) HTTP 메시지 바디는 엔티티 본문을 전달한다. HTTP RFC 2616(1999년) HTTP RFC 7230~7235(2014년) 하지만 2014년에 HTTP 표준이 개정이 되면서 표현이라는 단어로 바뀐다 엔티티 헤더가 표현 헤더가 된다. 엔티티 바디가 표현 데이터가 된다. json으로 나타낼 수 있고 html로도 나타낼 수 있어 표현이라는 단어를 쓴다. HTTP 바디는 페이로드(payload)라고도 한다. 표..
2023.11.04 -
[네트워크] HTTP 상태 코드에 대한 나름의 이해
HTTP 상태 코드는 Response message의 내용으로 요청에 대한 처리 상태를 의미한다. 다음의 것들이 있다. 1xx(Informational): 요청이 처리되고 있다는 뜻으로 거의 사용되지 않는다. 2xx(Successful): 요청이 성공적으로 처리되었다. 3xx(Redirection): 요청을 처리하려면 추가적인 행동이 필요하다. 4xx(Client error): 클라이언트 오류, 잘못된 문법 등으로 서버에서 처리할 수 없다. 5xx(Server error): 서버의 내부적 문제로 제대로 처리하지 못했다. 상태코드는 세자리 수이지만 앞자리가 전부이다. 조금씩 메시지는 다를 수는 있지만 큰 골자에서는 내용은 같다. 따라서 클라이언트 측에서는 앞자리만 가지고 설계를 하면 된다. 이러면 미래의 ..
2023.11.03 -
[네트워크] 클라이언트에서 서버로의 데이터 전송에 대한 나름의 이해
클라이언트에서 서버로의 데이터 전달 방식은 크게 두가지이다. 1. 쿼리 파라미터(스트링)를 통한 전달 - GET method를 통해 가능 2. HTTP 메시지 Body를 통한 전달 - POST, PUT, PATCH를 통해 가능 - 회원가입, 상품 주문, 리소스 등록, 리소스 변경 클라이언트에서 서버로의 데이터 전달 상황은 크게 4가지이다. 1. 정적 조회 - 쿼리 파라미터를 사용하지 않는다. - 이미지, 정적 텍스트 문서 2. 동적 조회 - 쿼리 파라미터를 사용한다. - 검색, 카테고리 선택, 정렬 필터 3. Form을 통한 전송 - Content-Type: application/x-www-form-urlencoded를 사용한다. - POST, GET 모두 가능하다. - GET으로 하게 되면 쿼리 파라미..
2023.11.03 -
[네트워크] HTTP API 설계에 대한 나름의 이해
URI의 핵심은 리소스를 식별이다. 리소스를 어떻게 할지에 대한 '행위'는 담으면 안된다! 미네랄을 캐라에서 미네랄은 리소스이고 캐라는 행위이다. 이걸 명백히 분리해야 한다. URI에서는 리소스만 식별하고 행위는 HTTP 메소드가 한다! 이것이 좋은 설계이다 HTTP method에는 다음의 것들이 있다. get post put patch delete GET 조회할 때 사용한다. 캐싱이 가능하다. query를 통해 데이터를 전달한다 바디에 데이터를 넣어 보낼 수도 있지만 지원이 안되는 서버가 많다.(비권장) POST 사실상 바디에 데이터를 넣는 모든 행위에 사용가능하다 하지만 주로 데이터를 생성, 요청을 처리할 때 사용한다. 요청을 처리하는 경우 URI에 행위가 포함되어야 하는 경우가 발생한다. 예를 들어..
2023.11.03