HTTP
-
[HTTP] 헤더 - 캐시와 조건부 요청HTTP 2023. 1. 29. 17:55
캐시가 없을때 만약 웹 브라우저가 서버에 GET/star.jpg라는 요청을 보낸다고 가정해보자. 서버는 웹브라우저의 요청을 받고 200상태코드와 함께 star.jpg파일에 대한 HTTP헤더: 0.1M, HTTP바디:1.0M 총 1.1M에 달하는 용량의 데이터를 보낸다. 이미지가 필요해서 다시 한번 브라우저가 방금과 똑같은 GET/star.jpg요청을 했다. 만약 캐시가 없다면 서버는 1.1M용량의 데이터를 또 클라이언트에 보내게된다. 같은요청 즉, 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야한다. 인터넷 네트워크는 매우 느리고 비싸기 때문에 효율적이지 못하다. 브라우저 로딩 속도가 느려진다. 그리고 이는 사용자의 느린 경험으로 이어진다. 캐시가 있을때 -캐시 제어 헤더 웹 브..
-
[HTTP] 헤더 - 일반헤더와 쿠키HTTP 2023. 1. 27. 20:28
http 헤더 구조 header-field = field-name ":" OWS field-value OWS field-name은 대소문자 구분 없음. 헤더의 용도 HTTP 전송에 필요한 모든 부가정보를 전달한다. 메세지 바디가 어떤내용 인가?, 메세지 바디의 크기?, 압축정보?, 인증정보?, 요청 클라이언트 누구?, 서버 정보 ?, 캐시관리 정보? 등 무수히 많은 정보가 들어갈수있다. 필요시 임의의 헤더를 추가할 수 도 있다. 표준 헤더 매우 많음 https://en.wikipedia.org/wiki/List_of_HTTP_header_fields List of HTTP header fields - Wikipedia From Wikipedia, the free encyclopedia HTTP heade..
-
[HTTP] 상태코드 (1xx, 2xx, 3xx, 4xx, 5xx)HTTP 2023. 1. 26. 17:36
상태코드란? - 서버가 클라이언트가 보낸 요청의 처리 상태를 응답해서 알려주는 기능이다. 1xx(Informational): 요청이 수신되어 처리중 2xx(Successful) : 요청 정상 처리 3xx(Redirection) : 요청을 완료하려면 추가 행동(redirect)이 필요함 4xx(Client Error) : 클라이언트 오류, 잘못된 문법 등으로 서버가 요청을 수행할 수 없음 5xx(Server Error) : 서버 오류, 서버가 정상 요청을 처리하지 못함. 서버 내부문제 만약 모르는 상태코드가 나타낸다면? 클라이언트가 인식할 수 없는 상태코드(ex) 299)를 서버가 반환하면? 클라이언트는 상위 상태코드(2xx, 3xx등)으로 해석해서 처리한다. 미래에 새로운 상태코드가 추가되어도 상태코드를..
-
[HTTP] API설계 예시로 알아보는 URI 설계 개념(컬렉션,스토어,컨트롤URI)HTTP 2023. 1. 26. 13:54
POST기반 API설계 회원 관리 시스템 클라이언트는 등록될 리소스의 URI를 모른다 -회원등록 /members ->POST 서버가 새로 등록된 리소스 URI를생성해준다. HTTP/1.1 201 Created Location:/members/100 컬렉션이란? 서버가 관리하는 리소스 디렉토리이다. 서버가 리소스의 URI를 생성하고 관리한다. 위예에서 /members가 컬렉션이다. PUT 기반 API 설계 파일관리리스템 클라이언트가 리소스 URI를 알고있어야 한다. - 파일등록 /files/{filename} -> PUT - PUT /files/star.jpg 클라이언트가 직접 리소스의 URI를 지정한다. 스토어? 클라이언트가 관리하는 리소스 저장소이다. 클라이언트가 리소스의 URI를 알고 관리한다. 위 ..
-
[HTTP] Client에서 Server로 데이터를 전송하는 방법HTTP 2023. 1. 25. 23:17
먼저 공부하기에 앞서 Client와 Server가 무엇인지 설명하겠다. 클라이언트와 서버 통신관계에서 Client는 사용자(나)라기보다는, 사용자가 사용하는 웹브라우저(네이버, 구글, ~~ 등등)를 나타낸다. Server는 웹브라우저의 요청메세지(Http 프로토콜)을 가지고 원하는 서비스(데이터)를 웹 브라우저에 제공해주는 존재이다. 우리는 클라이언트와 서버의 통신(url,https, http메소드 등 사용)을 통해 웹브라우저(네이버)에 검색(hello 검색결과)결과를 얻을 수 있게되는것이다. Client에서 Server로 데이터를 전송하는 방식은 크게 두 가지이다. 첫번째, 쿼리 파라미터를 통한 데이터 전송 uri에 쿼리 파라미터를 넣어서 전송한다. HTTP메소드로는 GET을 사용한다. 구글에 검색하기..
-
[HTTP] http 메서드(GET, POST, PUT, PATCH, DELETE)HTTP 2023. 1. 24. 13:48
HTTP API를 만들어보자!! 요구사항 - 아래 기능을 동작하는 회원 정보 관리 API를 만들어라 회원 목록조회 회원 조회 회원 등록 회원 수정 회원 삭제 API URI(Uniform Resource Identifier) 설계 URI설계에 있어 가장 중요한 것은 리소스를 식별하는것이다. 리소스의 의미는뭘까? 회원을 등록하고 수정하고 조회하는것이 리소스가아니다!! 회예) 미네랄을캐라 -> 미네랄(리소스) // 회원이라는 개념 자체가 리소스이다. 리소스 식별? -> 회원이라는 리소스만 식별 -> 회원 리소스를 URI맵핑 리소스만을 식별해서 API URI를 설계한 모습이다. URI계층 구조를 활용한다. 회원 목록조회 /members 회원 조회 /members/{id} -> 어떻게 구분? 회원 등록 /memb..
-
[HTTP] HTTPHTTP 2023. 1. 23. 14:38
HTTP : HyperText Transfer Protocol 네트워크 상에서 거의 모든 형태의 데이터(resource)를 Request-response, stateless , 비연결성하게 전송하는 프로토콜 (통신규칙). HTML텍스트로 시작해서 현재는 IMAGE, 음성, 영상,파일, JSON XML과 같은 API 등등 거의 모든형태의 데이터를 HTTP메세지로 전송 가능하다. 서버간에 데이터를 주고받을때도 대부분 HTTP를 사용!! 지금은 HTTP시대 HTTP version HTML1, HTML2는 TCP를 기반 프로토콜로 한다. 그러나 TCP는 데이터가 너무많고 메커니즘자체가 시간이 걸리는편이라 HTML3부터는 성능을 최적화하는것에 초점을 맞춰 UDP를 기반 프로토콜로 한다. HTTP특징 1. 클라이언..
-
[HTTP] URI /URL / URNHTTP 2023. 1. 21. 20:17
URI (Uniform Resource Identifier) URI는 resource(자원)을 통일된 방식으로 다른항목과 구분하는 식별자이다. URI는 식별자이다. 경로(locater)-URL, 이름(Name)-URN을 사용해 식별할 수 있다. resource는 URI로 식별가능한 모든것이다. (무엇이든 가능) URI는 URL을 포함하는 개념으로 혼용해서 사용한다, Uniform : 리소스를 식별하는 통일된 방식 Resource : URI로 식별할 수 있는 모든 것 Identifier : 다른 항목과 구분하는데 필요한 정보 (주민등록번호, 등) URL (Resource Locater) : 경로를 통해 식별하면? Locater를 이용해 식별하는 방법으로 리소스가 있는 위치를 지정한다. URN( Resour..