Computer Science/Network

• 캐시X -데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. -인터넷 네트워크는 매우 느리고 비싸다. -브라우저 로딩 속도가 느리다. -느린 사용자 경험 • 캐시O -캐시 덕분에 캐시 가능 시간동안 네트워크를 사용하지 않아도 된다. -비싼 네트워크 사용량을 줄일 수 있다. -브라우저 로딩 속도가 매우 빠르다. -빠른 사용자 경험 • 캐시 시간 초과 -캐시 유효 시간이 초과하면, 서버를 통해 데이터를 다시 조회하고, 캐시를 갱신한다. -이때 다시 네트워크 다운로드가 발생한다. • 캐시 유효 시간이 초과해서 서버에 다시 요청하면 다음 두 가지 상황이 나타난다. 1. 서버에서 기존 데이터를 변경함 2. 서버에서 기존 데이터를 변경하지 않음 -캐시 만료후에도 서버에서 데이터를 변..

• 인증 Authorization 클라이언트 인증 정보를 서버에 전달함. Authorization: Basic xxxxxxxxxxxxxxxx 이런 식으로 나타낸다. WWW-Authenticate 리소스 접근시 필요한 인증 방법에 대한 정의이다. 401 Unauthorized 응답과 함께 사용함.\ • 쿠키 -Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답) -Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달(헤더에 포함) • 모든 요청에 정보를 넘기는 문제 -모든 요청에 사용자 정보가 포함되도록 개발 해야함 -브라우저를 완전히 종료하고 다시 열면? • 쿠키 사용처 -사용자 로그인 세션 관리 -광고 정보 트래킹 -쿠키 정보는 항상 서버에 전송됨 -네트워크 트..

• HTTP Header -HTTP 전송에 필요한 모든 부가정보 -예) 메시지바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표현 • Content-Type -표현 데이터의 형식이다. 미디어 타입, 문자 인코딩 ex) text/html; charset=utf-8, application/json, image/png 등 • Content-Encoding -표현 데이터의 압축 방식이다. 표현 데이터를 압축하기 위해 사용하며, 데이터를 전달하는 곳에서 압축 후 인코딩 헤더 추가,데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제함 • Content-Language -표현 데이터의 자연 언어이다. ex) ko, en, en-US • Content-Length..

상태 코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 • 1xx (Informational): 요청이 수신되어 처리중 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 만약 클라이언트가 인식할 수 없는 상태 코드를 서버가 반환하는 경우 상위의 상태 코드로 해석해서 처리함 *Redirection: 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 자동 이동 (리다이렉트) --------..

• 클라이언트 -> 서버 데이터 전달 방식 -쿼리 파라미터를 통한 데이터 전송: GET(정적, 동적 데이터 조회) -메시지 바디를 통한 데이터 전송: POST,PUT,PATCH(HTML Form, API 등을 통한 데이터 전송) *HTML Form 전송은 GET,POST만 지원하며, 일반적으로 많이 쓰이는 것은 POST 메서드이다. HTML Form submit시 POST 메서드로 HTTP 요청 메시지가 전송이 된다. Content-Type으로는 주로 application/x-www-form-urlencoded을 사용한다. *HTTP API 전송은 POST,PUT,PATCH의 경우에는 HTTP 메시지 바디를 통해 데이터를 전송하고, GET의 경우에는 조회, 쿼리 파라미터로 데이터를 전달한다. Conten..

• API URI 설계 • 회원 목록 조회/read-member-list • 회원 조회/read-member-by-id • 회원 등록/creat-member • 회원 수정/update-member • 회원 삭제/delete-member 이것은 좋은 URI 설계가 아니다. 가장 중요한 것은 리소스 식별이다. 리소스는 회원이라는 개념 자체가 리소스다. 읽기, 생성하기, 업데이트하기, 삭제하기가 리소스가 아님(동사가 아닌 명사여야 함) -> 즉, 회원이라는 리소스만 식별하면 된다.(회원 리소스를 URI에 매핑) • 회원 목록 조회/member • 회원 조회/members/{id} • 회원 등록/members/{id} • 회원 수정/members/{id} • 회원 삭제/members/{id} 리소스와 행위를 분..


• HTTP 요청 메시지 Start-line에는 HTTP메서드, 요청 대상, HTTP버전을 기입한다. -HTTP 메서드 GET(리소스 조회), POST(요청 내역 처리), PUT(내용 교체), DELETE(삭제) 등이 있으며, 서버가 수행해야 할 동작이다. -요청 대상 absolute-path[?query](절대경로[?쿼리]) -> 절대경로는 "/"로 시작하는 경로이다. -HTTP버전 HTTP/1.1, HTTP/2, HTTP/3 같이 버전을 기입한다. • HTTP 응답 메시지 Start-line에는 HTTP버전, 상태코드, 이유 문구를 기입한다. • HTTP헤더 header-field = field-name ":" OWS field-value OWS (OWS: 띄어쓰기 허용) 헤더에는 HTTP 전송에 필..

• HTTP HTTP는 HyperText Transfer Protocol이다. 모든 것이 HTTP다 라는 말이 있을 정도로 HTTP는 만능이다. HTML, TEXT, IMAGE, JSON, XML (API) 등 거의 모든 형태의 데이터를 전송할 수 있고, 서버간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다. • HTTP 버전 HTTP/1.1을 가장 많이 사용하고, 가장 중요한 버전이다. TCP는 HTTP/1.1 & HTTP/2 기반이며, UDP는 HTTP/3 기반 프로토콜이다. 현재 HTTP/1.1을 주로 사용하고 점점 HTTP/2와 HTTP/3도 증가하고 있는 추세다. • Client - Server 구조(Request - Response 구조) 클라이언트는 서버에 요청을 보내고, 응답을 대기..