HTTP
HTTP(Hypertext Transfer Protocol)
URLs(Uniform Resource Locators)
protocol : http(default port=80), https(default port=443)
resource path : local path on the server
HTTP Request & Response
ex) 네이버(www.naver.com)로 GET 메서드 요청
Response body로는 html 파일이 돌아옴.
Response Header의 Content-Type : text/html
Request Method
GET, POST, PUT, DELETE를 이용하여 URL을 설계하자
추가설명) HEAD : Response body 없이 Response header만 온다.
TRACE는 'Via'라는 Response header에 어느 ip를 통해서 request가 이동했는지 저장해서 보내줌.
Response Status Code (1)
빈번히 쓰이는 status code만 요약함 . 없는 status code는 구글링!
Success (2xx)
- 200 (OK) # 요청이 성공적으로 수행됨.
- 201 (Created) # 리소스를 성공적으로 생성. ex) 게시물 업로드 성공
- 202 (Accepted) # 비동기 처리가 시작됬을 때
- 204 (No Content) # 응답바디에 의도적으로 아무것도 넣지 않았을 때
Redirect (3xx)
- 301 (Move Permanently) # URL의 local path가 바뀌어서 리소스가 이동했을 때 # Response header의 Location에 새로운 URL 부여
- 304 (Not modified) # 대역폭 절약하기 위해 사용, 클라이언트에 캐쉬되었을 때
Response Status Code (2)
Client Error (4xx)
- 400 (Bad Request) # 다른 4xx에 오류 표현할게 없으면 쓴다.
- 401 (Unauthorized) # 리소스에 인증없이 요청
- 403 (Forbidden) # 인증상태에 관계없이 요청 금지
- 404 (Not Found) # URL에 해당하는 리소스가 없을 때
- 405 (Method Not Allowed) # Request Method가 지원되지 않을 때
- 406 (Not Acceptable) # Request header의 Accept type을 지원하지 못할 때
- 409 (Conflict) # 리소스 상태에 위반될 경우. # ex) 리소스를 공동으로 수정할 경우, 리소스가 수정된 시간보다 # request의 timestamp가 늦을 경우.
Server Error(5xx)
- 500 (Internal Server Error) # API가 잘못 작동할 때
# ex) Flask에서 기능상 에러가 났을 때
General Header
Entity Header (About request/response message)
Request Header
Accept prefix : acceptable media-type, charset, language etc..
From, Host, Referer, User-Agent : Client Info
Referer : log 분석시 중요.
If prefix : request의 if header만족시 response의 리소스 반환
Response Header
ETag : MD5 해쉬값으로 리소스가 수정되었을 때 해쉬값 비교로 확인
Location : redirect해야될 URL
Server : Apache, Nginx와 같은게 나옴
HTTP message Example (1)
ex) dic.naver.com (네이버 사전) - 여기서 'intiated' 검색(query string에서 확인)
사진있음
HTTP message Example (2)
ex) daum.net - 302 Object Moved
사진있음
Responser header의 Location에 새로운 URL 있다.
HTTP message Example (3)
ex) daum.net - 200 OK
사진있음
HTTP message Example (4)
ex) 드랍박스 로그아웃 (response로 cookie 해제/ Location : /login?lhs_type=anywhere)
사진있음
HTTP 기본 끝.
이제 중요한거!
사실 이거하려고함.
Authentication & Cache
HTTP
By JongHo Kim
HTTP
http
- 801