HTTP
HTTP 웹 기본 지식 - 표현 (Representation)
HTTP 웹 기본 지식 - 표현 (Representation)
2022.06.18표현 (Representation) 이번시간에는 표현과 관련된 헤더들에 대해서 알아보자. 서버에 있는 회원 리소스를 클라이언트에게 "HTML 형식으로 전송할거야, json형식으로 전송할거야" "HTML 표현으로 전송할거야, json 표현으로 전송할거야" 두 무장은 같은 의미이다. 리소스라는 것은 굉장히 추상적이다. 이것을 클라이언트와 서버간에 주고받을 때는, 서로간에 이해할 수 있는 무언가로 변환해서 데이터를 주고받는다. 그래서 이것을 특정형식으로 "표현" 한다 라는 의미를 이야기할 때, "표현"이라고 이야기 한다. Content-Type: 표현 데이터의 형식 Content-Encoding: 표현 데이터의 압축 방식 Content-Language: 표현 데이터의 자연 언어 Content-Length: 표..
HTTP 웹 기본 지식 - HTTP 헤더 개요
HTTP 웹 기본 지식 - HTTP 헤더 개요
2022.06.18HTTP 헤더 개요 HTTP header-feild는 field-name ":' OWS field-value OWS가 올 수 있다. (OWS:띄어쓰기 허용) field-name은 대소문자 구분이 없다. HTTP 헤더의 용도 HTTP 전송에 필요한 모든 부가정보 (satrt-line을 제외한 부가정보) 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... 표준 헤더가 너무 많음 https://en.wikipedia.org/wiki/List_of_HTTP_header_fields 필요시 임의의 헤더 추가 가능 helloworld:hihi 과거 HTP RFC2616버전에서는 헤더를 크게 4가지로 분류 했다. 헤더 분류 General 헤더 : 메시지 ..
HTTP 웹 기본 지식 - 4xx - 클라이언트 오류, 5xx - 서버 오류
HTTP 웹 기본 지식 - 4xx - 클라이언트 오류, 5xx - 서버 오류
2022.06.184xx - 클라이언트 오류, 5xx - 서버 오류 먼저 400대 를 쓰고 언제 500대를 쓰는걸까? 간단하게 이렇게 구분하면 좋다. 400대 는 클라이언트 오류, 500대는 서버 오류 먼저 400대 Client Error 를 살펴보자. 4xx (Client Error) 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음 오류의 원인이 클라이언트에 있음 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패함. 400대 오류와 500대오류를 가르는 중요한 차이는, 400대 오류는 클라이언트가 이미 잘못된 요청을 한 것이기 때문에, 똑같이 여러번 재시도해도 계속 실패한다. 그런데 500대 오류는, 예를 들어 서버에 데이터베이스가 장애가 낫다고가정하면, 그러..
HTTP 웹 기본 지식 - 3xx - 리다이렉션2
HTTP 웹 기본 지식 - 3xx - 리다이렉션2
2022.06.173xx - 리다이렉션2 일시적인 리다이렉션은 리소스 URI가 일시적으로 바뀐다는 뜻이다. 처음에는 A라는 곳으로 갔다가, 나중에는 B라는 곳으로 갈 수도 있는 것이다. 그렇기 때문에, 이전에 살펴본 영구적인 리다이렉션과 다르게 검색엔진등에서 "어? 얘가 리다이렉션이 됬네?"라고 해서 그런 것을 바꾸면 안된다. 다음에 어떻게 될지 모르기 때문이다. 계속 오던대로 들어와야 한다. 실무에서는 일시적인 리다이렉션을 정말 많이 사용한다. 일시적 리다이렉션의 상태코드는 3가지가 있다. 302, 307, 303이 있다. 3가지가 기능은 다 똑같다. 그러면 뭐가 다를까? 302 Found 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음(MAY) 307 Temporary Redirect 302와 기..
HTTP 웹 기본 지식 - 3xx - 리다이렉션1
HTTP 웹 기본 지식 - 3xx - 리다이렉션1
2022.06.173xx - 리다이렉션1 Redirection은 클라이언트가 서버에 요청을 했을 때, 서버가 "이 요청을 완료하려면 뭔가 추가적인 작업이 필요해!" 라고 하고선 클라이언트에게 다시 보내는 것이다. 3XX (Redirection)은 요청을 완료하기 위해 유저 에이전트의 추가 조치가 필요하다. 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 307 Temporary Redirect 308 Permanent Redirect 300번대는 300번은 거의 쓰지 않고, 301~308번이 중요하다. 먼저, 가장 중요한 리다이렉션이 뭔지 알아보자. 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Lo..
HTTP 웹 기본 지식 - 2xx - 성공
HTTP 웹 기본 지식 - 2xx - 성공
2022.06.172xx - 성공 200시리즈일 떄는 클라이언트이 요청이 성공적으로 처리되었다고 이해하면 된다 200 OK - 가장 기본적인 것으로 클라이언트의 요청을 성공적으로 처리 201 Created - 클라이언트가 요청한 것을 가지고 서버쪽에서 리소스 생성(주로 POST로 뭔가를 등록) 202 Accepted 204 No Content 라는게 있다. 자세하게 알아보자. 200 OK는 예를 들어서 GET으로 /members/100 에있는 데이터를 주세요! 라고 서버에 요청했을 때, 서버가 해당 결과를 정상적으로 잘 처리해서 응답을 하면, HTTP 응답 메시지의 start-line에 200OK 를 준다. 201 Created는 POST로 /members 를 해서 "username":"young", "age":20 을 ..