[모든 개발자를 위한 HTTP 웹 기본 지식] 08. HTTP 헤더 2 - 캐시와 조건부 요청
2022. 6. 21. 03:44
Network/모든 개발자를 위한 HTTP 웹 기본 지식
본 문서는 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 보고 제 주관대로 정리한 글입니다. 캐시 기본 동작 캐시가 없다면? 데이터가 변경되지 않아도 매번 네트워크를 통해 데이터를 다운받아야 한다. 네트워크는 느리고 비싸다. 로딩 속도가 느려지므로, 느린 사용자 경험 캐시 효과 캐시 유효 시간 동안은 네트워크 필요 없이 캐시에서 가져오면 된다. 비싼 네트워크 사용량을 줄일 수 있다. 로딩 속도가 빨라지므로, 빠른 사용자 경험 캐시 시간 초과 캐시 유효 시간이 지나면, 네트워크를 통해 다시 데이터를 받아와서 캐시를 갱신 검증 헤더와 조건부 요청 1 캐시 유효 시간이 초과한 경우 서버의 데이터가 변경 서버의 데이터가 그대로 데이터가 그대로라면 캐시를 재사용할 수 있음 캐시의 데이터와 서버의 데이터가 같은..
[모든 개발자를 위한 HTTP 웹 기본 지식] 07. HTTP 헤더1 - 일반 헤더
2022. 6. 20. 19:43
Network/모든 개발자를 위한 HTTP 웹 기본 지식
본 문서는 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 보고 제 주관대로 정리한 글입니다. HTTP 헤더 개요 header-field = field-name ":" OWS(띄어쓰기 허용) field-value OWS field-name은 대소문자 구분 없음 HTTP 전송에 필요한 모든 메타 데이터 HTTP 헤더 분류 - RFC2616 (과거) 헤더 분류 General 헤더: 메시지 전체에 적용되는 정보 Request 헤더: 요청 정보 Response 헤더: 응답 정보 Entity 헤더: 엔티티 바디 정보 HTTP 바디 - RFC2616 (과거) HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 ... ... 부분이 ..
[모든 개발자를 위한 HTTP 웹 기본 지식] 06. HTTP 상태 코드
2022. 6. 20. 02:28
Network/모든 개발자를 위한 HTTP 웹 기본 지식
본 문서는 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 보고 제 주관대로 정리한 글입니다. 상태 코드 (Status Code) 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx (Informational): 요청 처리 중, 거의 사용되지 않음 2xx (Successful): 요청 정상 처리 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 4xx (Client Error): 클라이언트 오류 5xx (Server Error): 서버 오류 상태 코드를 위와 같이 나눔으로써 클라이언트가 모르는 상태 코드를 서버가 반환해도 상위 상태 코드로 해석해서 처리, e.g., 299 -> 2xx (Successful) 2xx (Successful) 클라이언트의 요청을 성공적으로..
[모든 개발자를 위한 HTTP 웹 기본 지식] 05. HTTP 메서드 활용
2022. 6. 19. 17:48
Network/모든 개발자를 위한 HTTP 웹 기본 지식
본 문서는 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 보고 제 주관대로 정리한 글입니다. 클라이언트에서 서버로 데이터 전송 정적 데이터 조회 GET 사용 이미지, 정적 텍스트 문서 등 동적 데이터 조회 GET 사용 검색, 게시판 목록에서 정렬 또는 필터에 주로 사용 쿼리 파라미터로 데이터 전달 HTML Form 데이터 전송 POST 전송 Content-Type: application/x-www-form-urlencoded 사용 Form의 데이터를 메시지 바디로 전송(key=value 형식) 전송 데이터는 url encoding 처리 GET 전송 GET으로 요청하면 쿼리 파라미터로 데이터가 전송 리소스 변경에는 사용하면 안 되고, 조회에만 사용! Content-Type: multipart/form-..
[모든 개발자를 위한 HTTP 웹 기본 지식] 04. HTTP 메서드
2022. 6. 18. 08:56
Network/모든 개발자를 위한 HTTP 웹 기본 지식
본 문서는 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 보고 제 주관대로 정리한 글입니다. API URI 설계 가장 중요한 것은 리소스 식별 회원 관련 API를 설계한다고 했을 때, 등록, 수정, 조회는 리소스가 아니다. 회원이라는 개념 자체가 리소스 -> 회원 리소스를 URI에 매핑 등록, 수정, 조회 같은 기능들은 메서드를 이용 회원 기능 API URL 설계 회원 목록 조회 /members 회원 조회 /members/{id} 회원 등록 /members/{id} 회원 수정 /members/{id} 회원 삭제 /members/{id} 계층 구조상 상위를 컬렉션으로 보고 복수단어 사용 권장(member -> members) HTTP 메서드 종류 주요 메서드 GET: 리소스 조회 POST: 요청 데이터..
[모든 개발자를 위한 HTTP 웹 기본 지식] 03. HTTP 기본
2022. 6. 16. 20:42
Network/모든 개발자를 위한 HTTP 웹 기본 지식
본 문서는 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 보고 제 주관대로 정리한 글입니다. HyperText Transfer Protocol 모든 것이 HTTP HTML 문서나 텍스트뿐만 아니라 이미지, 음성, 영상 등의 파일, API에 주로 쓰이는 JSON, XML까지 거의 모든 형태의 데이터 전송이 가능 서버 간에 데이터를 주고 받을 때도 대부분 HTTP를 사용 HTTP 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더 X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 RFC2068 (1997) -> RFC2616 (1999) -> RFC7230~7235 (2014) HTTP/2 2015년: 성능 개..
[모든 개발자를 위한 HTTP 웹 기본 지식] 02. URI와 웹 브라우저 요청 흐름
2022. 6. 16. 12:33
Network/모든 개발자를 위한 HTTP 웹 기본 지식
본 문서는 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 보고 제 주관대로 정리한 글입니다. URI(Uniform Resource Identifier) URI? URL? URN? "URI는 로케이터(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있다. https://www.ietf.org/rfc/rfc3986.txt - 1.1.3. URI, URL, and URN URI는 URL과 URN을 포함하는 개념이라 할 수 있다. URI Uniform: 리소스를 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것 Identifier: 다른 항목과 구분하는 데 필요한 정보 URL, URN URL - Locator: 리소스가 있는 위치를 지정한다. URN - Name..
[모든 개발자를 위한 HTTP 웹 기본 지식] 01. 인터넷 네트워크
2022. 6. 16. 12:25
Network/모든 개발자를 위한 HTTP 웹 기본 지식
본 문서는 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 보고 제 주관대로 정리한 글입니다. 인터넷에서 컴퓨터들은 어떻게 통신할까? IP(Internet Protocol) - 인터넷 프로토콜 IP의 역할 지정한 IP 주소(IP Address)에 데이터를 전달한다. 데이터를 전달할 때는 패킷(Packet)이라는 통신 단위를 사용하는데 다음과 같은 정보를 포함한다. 출발지 IP 주소 목적지 IP 주소 전달할 데이터, 기타 등 패킷(Packet)은 패키지(Package)와 버킷(Bucket)의 합성어 IP의 한계 비연결성: 대상 서버가 패킷을 받을 수 있는 상황인지 모르기 때문에 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다. 비신뢰성: 중간에 패킷이 사라지거나 패킷이 순서대로 도착하지 ..