HTTP
-
9. HTTP 헤더 (2)HTTP 2022. 8. 1. 22:10
캐시가 없는 경우, 동일한 데이터를 요청할 때마다 매번 네트워크를 통한 데이터를 다운로드 받아야 한다. 이럴 경우, 브라우저 로딩 속도가 매우 느려지고, 사용자 입장에서는 속도가 답답할 수 있다. 캐시 HTTP/1.1 200 OK Content-Type: image/jpeg cache-control: max-age=60 Content-Length: 34012 lkj123kljoiasudlkjaweioluywlnfdo912u34ljko98udjkla slkjdfl;qkawj9;o4ruawsldkal;skdjfa;ow9ejkl3123123 사용자가 특정 데이터를 요청하였을 때, 서버에서 해당 데이터에 대한 캐시의 유효한 시간을 설정해준다. 이후, 동일한 요청을 하였을 때, 웹 브라우저에 존재하는 브라우저 캐..
-
8. HTTP 헤더 (1)HTTP 2022. 8. 1. 17:12
HTTP 헤더 Request Message Response Message GET /search?q=hi&hl=ko HTTP/1.1 Host: www.google.com HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 ... 위의 빨간 글씨가 HTTP의 헤더이다. 헤더에는 HTTP 전송에 필요한 모든 부가 정보가 포함된다. ex) Message body 내용, 크기, 압축, 인증 등 ● RFC2616(과거) 과거에는 헤더를 아래와 같이 4가지로 분류했다. • General 헤더: 메시지 전체에 적용되는 정보 ex) Connection: close • Request 헤더: 요청 정보 ex) User-Agent: Mozill..
-
7. HTTP 상태코드HTTP 2022. 7. 28. 22:33
클라이언트에서 서버로 요청을 보냈을 때, Response Message에 포함되는 상태코드를 알아보자. 세세한 상태코드를 알지 못하더라도, 큰 범위의 상태코드를 통해 어림잡아 알 수 있다. 따라서, 클라이언트에서는 상위 상태코드로 해석하여 처리하면 된다. HTTP 상태코드 • 1xx (Informational): 요청이 수신되어 처리중 • 2xx (Successful): 요청 정상 처리 • 3xx (Redirection): 요청을 완료하려면 추가 행동이 필요 • 4xx (Client Error): 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음 • 5xx (Server Error): 서버 오류, 서버가 정상 요청을 처리하지 못함 ● 1xx - 요청이 수신되어 처리중 거의 사용되지 않으므..
-
6. HTTP 메서드 활용 (2)HTTP 2022. 7. 28. 21:17
HTTP API에서 POST와 PUT 모두 새로운 내용을 등록할 수 있다. 그렇다면, 언제 POST를 사용하고 언제 PUT을 사용해야 할까? HTTP API 설계 ● POST 기반 설계 ● 회원 목록 : /members -> GET ● 회원 등록 : /members -> POST 회원 목록 조회와 등록이 모두 같은 URI를 사용하는데 어떻게 구분하지 ? 앞선 포스트에서도 말했듯이, 서버와의 임의의 약속을 한다. 따라서, 전달된 메서드에 맞게 동작하도록 설계하면 된다. POST 메서드를 넘길 경우, Resource를 구분할 수 있는 추가적인 URI를 서버에서 생성 ※ 클라이언트는 새롭게 등록되는 Resource의 URI를 모른다. 이와 같이 서버가 관리하는 Resource Directory를 컬렉션이라고 ..
-
5. HTTP 메서드 활용 (1)HTTP 2022. 7. 28. 20:20
앞선 게시글에서 HTTP 메서드의 전반적인 내용에 대해 알아보았다. 메서드를 설명함에 있어서, 서버쪽에 치중하여 설명하였기 때문에, 이번에는 클라이언트 입장에서 주로 설명해보려 한다. 데이터 전달방식 ● Query Parameter 주로 GET 메서드에서 Query Parameter를 통해 데이터를 전달할 때 사용한다. 검색어나, 정렬 등이 필요한 경우 사용한다. ● Message Body 주로 POST, PUT, PATCH 메서드에서 Message Body를 통해 데이터를 전달할 때 사용한다. CASE 1 : 정적 데이터 조회 (Query 미사용) GET /static/star.jpg HTTP/1.1 Host: localhost:8080 ※ 요청 메세지 (Request Message) HTTP/1.1 ..
-
4. HTTP 메서드HTTP 2022. 7. 28. 17:53
회원 정보를 관리하는 HTTP API를 만들어보고자 한다. CRUD 기능을 기본으로 하는 API를 만들어볼 것이다. 우선, API를 만들기 전에 정해야 할 것은 URI이다. 예를 들어, "회원 조회"라는 기능에 대한 URI를 "/read-member-by-id"로 정하면 어떨까 ? 분명, URI를 보았을때 해당 기능을 알 수 있는 것은 분명하다. 하지만, 우리는 URI가 Resource를 식별해주는 식별자로써의 역할을 한다는 것을 배웠다. 그렇다면, 회원 정보를 관리하는 메서드에서 Resource는 무엇일까 ? 바로 회원이다. 여기서 우리는 "/members/id" 처럼 구현하면 되겠구나 ! 라고 생각할 수 있다. 하지만, 회원 정보를 관리하는 API에 회원 추가, 삭제, 수정 등의 기능도 위와 같은 형..
-
3. HTTP의 기본HTTP 2022. 7. 26. 22:20
오늘날, HTTP (HyperText Transfer Protocol) 오늘날, HTTP 메세지에 단순한 Text 뿐만 아니라, 사진, 영상, 파일, JSON 등 거의 모든 형태의 데이터를 포함할 수 있다. 서버간의 데이터를 주고 받을때도, 대부분 HTTP를 사용한다. ● HTTP의 역사 버전 연도 특징 HTTP/0.9 1991 GET 메서드만 지원, HTTP Header X HTTP/1.0 1996 여러 메서드 및 HTTP Header 추가 HTTP/1.1 1997 오늘날, 가장 많이 사용되고 있는 버전 RFC2068(1997) -> RFC2616(1999) -> RFC7230~7235(2014) HTTP/2 2015 성능 개선 HTTP/3 진행중 UDP 사용 및 성능 개선 오늘날에는, HTTP/1.1..
-
2. URI와 웹 브라우저 요청 흐름HTTP 2022. 7. 26. 21:06
URI (Uniform Resource Identifier) 정의에 따르면, "URI는 Locator와 Name 혹은 둘 다 추가로 분류될 수 있다."고 되어있다. 즉, URI = URL + URN라고 할 수 있는 것이다.그렇다면, URI는 무엇일까 ? 우선, 단어의 뜻 부터 알아보자. Uniform : Resource를 식별하는 통일된 방식Resource : URI로 식별할 수 있는 모든 자원Identifer : 다른 항목과 구분하는데 필요한 정보 즉, URI는 특정 자원을 식별해주는 식별자라는 것이다. 자연스럽게, URL은 위치(Locator), URN은 이름(Name)을 통해 자원을 식별한다는 뜻이 된다. Resource의 위치는 변할 수 있지만, 이름은 변하지 않는다. 하지만, 이름만으로 실제 R..