HTTP 웹 지식 34

HTTP 일반 헤더1-일반 헤더(일반 정보)

일반 정보 - From: 유저 에이전트의 이메일 정보 - Referer: 이전 웹 페이지 주소 - User-Agent: 유저 에이전트 애플리케이션 정보 - Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보 - Date: 메시지가 생성된 날짜 From 유전 에이전트의 이메일 정보 - 유저 에이전트의 잘 사용되지 않음 - 검색 엔진 같은 곳에서, 주로 사용 - 요청에서 사용 Referer 이전 웹 페이지 주소 - Referer 같은 경우에는 진짜로 많이 사용 - 현재 요청된 페이지의 이전 웹 페이지 주소 - A -> B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청 - Referer를 사용해서 유입 경로 분석 가능 - 요청에서 사용 - 참고: referer는 단어 referr..

HTTP 웹 지식 2022.01.15

HTTP 일반 헤더1-일반 헤더(전송 방식)

전송 방식 - Transfer-Encoding - Range, Content-Range 전송 방식 설명 - 단순 전송 - 압축 전송 - 분할 전송 - 범위 전송 전송 방식을 나누면 크게 4가지로 나눠지게 됩니다. 첫번째 단순 전송은 그냥 요청을하게되면 응답을 주는데 위 메시지 바디에 대한 Content-Length를 딱 지정하는겁니다. 이 전송은 Content에 대한 길이를 알 수 있을 때 사용하는겁니다. 한번에 요청하고 한번에 응답을 받는겁니다. 압축 전송은 서버에서 방금 메시지를 예를들어서 gzip으로 압축해주는겁니다. 그러면 용량이 매우 줄어들겠죠. 그런데 이 때는 Content-Encoding을 무조건 넣어줘야합니다. 그 다음에 분할 전송이라는게 있습니다. 분할 전송은 Transfer-Encodi..

HTTP 웹 지식 2022.01.15

HTTP 일반 헤더1-일반 헤더(콘텐츠 협상)

협상(콘텐츠 네고시에이션) 클라이언트가 선호하는 표현 요청 - Accept: 클라이언트가 선호하는 미디어 타입 전달 - Accept-Charset: 클라이언트가 선호하는 문자 인코딩 - Accept-Encoding: 클라이언트가 선호하는 압축 인코딩 - Accept-Language: 클라이언트가 선호하는 자연 언어 - 협상 헤더는 요청시에만 사용 콘텐츠 네고시에이션을 쉽게 설명하자면 클라이언트와 서버가 있습니다. 클라이언트가 원하는 표현으로 서버에게 달라고 요청을하는 겁니다. 그러면 서버가 클라이언트가 원하는 우선순위가 이거니까 우선순위에 맞춰서 표현 데이터를 만들어줄게. Accept는 뭐냐면 클라이언트가 원하는 미디어 타입을 서버에게 달라는겁니다. Accept-Charset는 클라이언트가 선호하는 문자..

HTTP 웹 지식 2022.01.15

HTTP 일반 헤더1-일반 헤더(표현 헤더)

표현 헤더 - Content-Type: 표현 데이터의 형식 - Content-Encoding: 표현 데이터의 압축 방식 - Content-Language: 표현 데이터의 자연 언어 - Content-Length: 표현 데이터의 길이 - 표현 헤더는 전송, 응답 둘다 사용 회원이라는 리소스가 있어요. 이거를 HTML이라는 표현으로 전달할거야 아니면 JSON이라는 데이터 형태의 표현으로 전달한다라고 할 때 표현을 사용. 그래서 표현이라는 것을 할려면 먼저 html로 갔는지 json으로 갔는지 알기 위해서 먼저 헤더에 Content-Type을 사용합니다. 그 다음에 Content-Encoding이라는게 있습니다. 이것은 표현 데이터의 압충 방식에 대해서 설명을하고요. Content-Language라는 것도 있..

HTTP 웹 지식 2022.01.15

HTTP 일반 헤더1- 일반 헤더(HTTP 헤더 개요)

HTTP 헤더 - header-field = field-name ":" OWS field-value OWS (OWS:띄어쓰기 허용) - field-name은 대소문자 구분 없음 HTTP 헤더 용도 - HTTP 전송에 필요한 모든 부가정보가 들어있습니다. - 예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보... - 표준 헤더가 너무 많음 - 필요시 임의의 헤더 추가 가능 - helloworld: hihi HTTP 헤더 분류 - RFC2616(과거) - 헤더 분류 - General 헤더: 메시지 전체에 적용되는 정보, 예) Connection: close - Request 헤더: 요청 정보, 예) User-Agent: Mozilla/5.0(Maci..

HTTP 웹 지식 2022.01.15

HTTP 상태 코드6(5xx - 서버 오류)

5xx(Server Error): 서버 오류 - 서버 문제로 오류 발생 - 서버에 문제가 있기 때문에 재시도 하면 성공할 수도 있음(복구가 되거나 등등) 500 Internal Server Error 서버 문제로 오류 발생, 애매하면 500 오류 - 서버 내부 문제로 오류 발생 - 애매하면 500 오류 503 Service Unavailable: 서비스 이용불가 - 서버가 일시적인 과부하 또는 예정된 작업으로 잠시 요청을 처리할 수 없음 - Retry-After 헤더 필드로 얼마뒤에 복구되는지 보낼 수도 있음 - 503으로 뜨는 경우 거의 없음

HTTP 웹 지식 2022.01.11

HTTP 상태 코드5(클라이언트 오류)

4xx(Client Error) - 클라이언트의 요청에 잘못된 문법등으로 서버가 요청을 수행할 수 없음 - 오류의 원인이 클라이언트에 있음 - 중요! 클라이언트가 이미 잘못된 요청, 데이터를 보내고 있기 때문에, 똑같은 재시도가 실패함 - 클라이언트 오류와 서버 오류의 큰 차이점을 간단하게 말하자면, 클라이언트가 잘못을 했으면 400대 오류인거고 뭔가 서버에 문제가 있으면 500대 오류이다. 그리고 400대 오류와 500대 오류를 가르는 차이점이 한 가지가 더 있는데요. 400대 오류는 이미 클라이언트가 잘못 요청한 것입니다. 그러기 때문에 똑같이 여러번 재시도해도 계속 실패합니다. 반면, 500대 오류는 예를 들어서 서버 데이터베이스에 장애가 났어요. 그러면 서버에 요청을 보내면 500대 오류가 나겠죠..

HTTP 웹 지식 2022.01.11

HTTP 상태 코드4(3xx - 리다이렉션2)

일시적인 리다이렉션(302, 307, 303) - 리소스의 URI가 일시적으로 변경 - 따라서 검색 엔진 등에서 URI을 변경하면 안됨 - 실무에서 정말 많이 사용됨 - 302 Found - 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음(MAY) - 307 Temporary Redirect - 302와 기능은 같음 - 리다이렉트시 요청 메서드가 GET으로 변하고, 본문이 제거될 수 있음(MAY) - 303 See Other - 302와 기능은 같음 - 리다이렉트시 요청 메서드가 GET으로 변경 302 307 303 기능은 모두 다 같다. 근데 모두 다 차이점이 있다. 그게 뭐냐면 302는 리다이렉트시 요청 메스다 GET으로 변하고, 본문이 제거가 될 수 있다. 근데 얘는 처음 스펙..

HTTP 웹 지식 2022.01.11

HTTP 상태 코드3(3xx - Redirection)

3xx(Redirection): 요청을 완료하기 위해 유저 에이전트의 추가 조치 필요 - 300 Multiple Chocies - 301 Moved Permanently - 302 Found - 303 See Other - 304 Not Modified - 307 Temporary Redirect - 308 Permanent Redirect 한 마디로, 클라이언트가 서버에 요청을 했을 때, 서버가 요청을 완료하려면 뭔가 추가적인 작업이 필요하다라고해서 클라이언트가 다시 보내는겁니다. 위에서 말하는 유저 에이전트는 클라이언트 프로그램이자 주로 웹 브라우저를 말합니다. 그리고 300번대 시리즈는 Multiple Choices라고 있는데 그것은 거의 사용하지 않습니다. 301 ~ 308까지가 중요합니다. 리다..

HTTP 웹 지식 2022.01.11

HTTP 상태 코드2(2xx - 성공)

2xx(Successful): 클라이언트의 요청을 성공적으로 처리 - 200 OK : 클라이언트 요청을 성공적으로 처리한 것중에 대표적인 것 - 201 Created : 클라이언트가 요청을 한 것 가지고 서버쪽에서 리소스를 생성하는 것. 주로 포스트를 했을 때 201 Created를 한다. - 202 Accepted: - 204 No Content 예를 들어서 클라이언트에서 GET으로 /members의 100번을 주세요 요청을 하면 서버에서 결과를 정상적으로 잘 처리해서 응답을하면 HTTP 스타트 라인에다가 200 OK를 내리면 됩니다. POST로 /members를 해줘서 username이 young이고 age가 20인 새로운 신규 자원으로 생성해달라고 요청을 해줍니다.그러면 서버에서 어쨌든 신규 리소스..

HTTP 웹 지식 2022.01.11