Programming/Computer Science
-
[HTTP] HTTP 캐시와 조건부 요청, 검증 헤더, 프록시 캐시, 캐시 무효화Programming/Computer Science 2022. 4. 17. 11:51
인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 내용을 정리한 글입니다. 1. 캐시 기본 동작 캐시가 없을 때 첫 번째 요청 GET /star.jpg -> HTTP/1.1 200 OK이때 응답이 1.1mb라고 해보자. 두 번째 요청 GET /star.jpg -> HTTP/1.1 200 OK똑같이 응답이 1.1mb 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다. 인터넷 네트워크는 PC 메모리나 하드디스크에 비해 매우 느리고 비싸다. 브라우저 로딩속도가 느리다 -> 느린 사용자 경험 캐시 적용 첫 번째 요청 GET /star.jpg -> HTTP/1.1 200 OK이때 응답 헤더 필드에 cache-control: max-age=60 (캐시가 유효한 ..
-
[HTTP] HTTP 일반 헤더, 표현, 콘텐츠 협상, 인증, 쿠키Programming/Computer Science 2022. 4. 17. 11:50
인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 내용을 정리한 글입니다. 1. HTTP 헤더 개요 HTTP 헤더 header-field는 아래와 같은 형식으로 작성한다. field-name":" OWS field-value OWS field-name 다음 콜른(:)은 반드시 붙여 적는다. OWS는 띄어쓰기 허용이라는 뜻이다. field-name은 대소문자 구분 없다. field-value는 대소문자 구분한다. 용도 HTTP 헤더는 HTTP 전송에 필요한 모든 부가정보를 나타낸다. 예를 들면 메세지 바디의 내용, 바디의 크기, 압축, 인증, 요청 클라이언트 정보, 서버 정보, 캐시 관리 정보 등을 표시한다. 표준 헤더 필드가 엄청 많고, 필요 시 임의의 헤더 필드 추가 가능 분류..
-
[HTTP] HTTP 상태코드, 리다이렉션Programming/Computer Science 2022. 4. 17. 09:24
1. HTTP 상태코드 소개 인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 내용을 정리한 글입니다. 상태코드 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능 1xx(informational): 요청이 수신되어 처리중 2xx(Successful): 요청 정상 처리 3xx(Redirection): 요청을 완료하려면 추가 행동 필요 4xx(Client Error): 클라이언트 오류. 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx(Server Error): 서버 오류. 서버가 정상 요청을 처리하지 못함 만약 모르는 상태 코드가 나타난다면? 클라이언트가 인식할 수 없는 상태를 서버가 반환하면? 클라이언트는 상위 상태코드로 해석해서 처리한다. 미래에 상태코드가 추..
-
[HTTP] HTTP 메소드 활용, collection, store, POST 기반 설계, PUT 기반 설계Programming/Computer Science 2022. 4. 1. 15:50
1. 클라이언트에서 서버로 데이터 전송 인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 내용을 정리한 글입니다. 클라이언트에서 서버로 데이터 전송 HTTP를 이용한 데이터 전달 방식은 크게 2가지이다. 쿼리 파라미터를 통한 데이터 전송 GET 주로 정렬 필터, 검색어 메세지 바디를 통한 데이터 전송 POST, PUT, PATCH 회원가입, 상품 주문, 리소스 등록, 리소스 변경 등 정적 데이터 조회와 동적 데이터 조회 데이터 조회에는 정적 데이터 조회와 동적 데이터 조회, 두 가지 상황이 있다. 1. 정적 데이터 조회 이미지, 정적 텍스트 문서 일반적으로 쿼리 파라미터 없이 리소스 경로만으로 조회 가능 GET 사용 2. 동적 데이터 조회 GET은 쿼리 파라미터를 사용해서 데이터..
-
[HTTP] HTTP 메소드, GET, POST, PATCH, PUT, DELETE, 안전, 멱등Programming/Computer Science 2022. 3. 29. 11:02
1. HTTP API를 만들어보자 인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 내용을 정리한 글입니다. 주로 사용되는 HTTP 메서드는 크게 get, post, put, patch, delete 5가지가 있다. 메서드의 속성 회원정보관리 API를 만들어야 한다면, API URI를 아래와 같이 설계할 수 있다. 회원목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member 이렇게 URI를 설계하는 것 그리 좋지 않다. 가장 중요한 것은 리소스 식별인데, 위와 같이 하면 이 식별이 어렵기 때문이다. 그렇다면 리소스는 뭘까? 등록하고, 수정..
-
[HTTP] HTTP 메세지, stateless, 비연결성Programming/Computer Science 2022. 2. 4. 17:52
인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 내용을 정리한 글입니다. 1. 모든 것이 HTTP HTTP(Hyper Text Transfer Protocol) 지금은 HTTP 시대. 모든 것이 HTTP를 통해 이루어진다. HTML, TEXT, IMG, 음성, 영상, 파일, JSON, XML(API) 등 거의 모든 형태의 데이터를 전송할 수 있고 서버 간에 데이터를 주고 받을 때도 대부분 HTTP를 사용한다.(TCP를 직접 연결하는 경우는 매우 특별한 경우) HTTP 역사 0.9/ 1991년/ GET 메소드만 지원. HTTP 헤더 없음 1.0/ 1996년/ 메소드, 헤더 추가 1.1/ 1997년/ 가장 많이 사용하고 가장 중요한 버전 2.0/ 2015년/ 성능 개선 3.0/ 진..
-
[HTTP] URI, 웹 브라우저 요청 흐름Programming/Computer Science 2022. 2. 1. 16:12
1. URI URI(Uniform Resource Identifier): 자원(URI로 식별할 수 있는 모든 것)을 구분, 식별하는 통일된 방식이다. URI는 URL과 URN으로 구성되어있다. URL(Locator): 리소스가 있는 위치를 지정. URL를 입력하면 해당 위치로 찾아가서 그 리소스를 찾아냄. URN(Name): 리소스에 이름을 부여(마치 isbn처럼). 현재 URN만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않아 거의 URL만 사용된다. URL 분석 전체문법 scheme://[userinfo@]host[:port][/path][?query][#fragment] 예시 https://www.google.com[:443]/search?q=hello&hl=ko scheme: https ..
-
[HTTP] 인터넷 통신, IP, TCP, UDP, PORT, DNSProgramming/Computer Science 2022. 1. 29. 22:14
인프런 김영한 님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 듣고 내용을 정리한 글입니다. 1. 인터넷 통신 HTTP 또한 인터넷 통신 위에서 동작한다. 인터넷에서 컴퓨터는 어떻게 통신할까. 클라이언트와 서버는 인터넷을 통해 메세지를 주고받는다. 클라이언트 --- 인터넷 ---> 서버 클라이언트가 보낸 메세지가 서버에게 안전하고 정확하게 전달되려면 어떤 특정한 규칙이 필요할 것이다. 그 규칙이 인터넷 프로토콜(Internet Protocol)이다. 2. IP(인터넷 프로토콜) 인터넷 망에서 클라이언트와 서버는 IP주소를 통해 서로 메세지를 주고 받는다. 이때 패킷(packet)이라는 통신 단위로 데이터를 전달하게 되는데, 패킷은 package와 bucket의 합성어로, 데이터 뭉치라고 생각하면 ..