[CS] HTTP 파헤치기. HTTP가 뭘까? - CodeHan의 코딩공부
HTTP의 역사
HTTP는 Hypertext Transfer Protocol의 약자이다.
Requeset-response로 이루어진 프로토콜이다.
HTTPS는
HTTP에 Secure가 추가된 것이다.
TLS와 SSL로 보안처리가 된다.
Http v1은 http와 https둘 다 사용가능 text-based 사이즈가 크다 한 번에 하나의 파일만 가능
Http v2는 https로만 동작할 수 있다. Binary based protocol이다 header도 압축되어있고 파일도 여러 개를 주고받을 수 있다.
Http v3는 활발히 개발중며 아직 많은 브라우저는 지원하지않는다. TCP베이스에서 UDP로 변환중이다.
STATUS CODE
서버에서 client한테 정보를 전달할 때 status code를 함께 전달한다.
HTTP표준에서 정의된 것으로 공통적으로 약속된 언어이다.
100 : information
100 : Continue, 102 : processing
200 : succesful
200 : Success, 201 : Created, 204 : No Content
300 : redirection
301 : Moved permanetly, 302 : Found, 303 : See Other, 307 : Temporary Redirection 308 : Permanent Redirect
400 : Client error
400 : Bad Request, 401 : Unauthorized, 403 : Forbidden, 404: Not Found, 405 : Method Not Allowed, 409 : Client
500 : Server error
500 : Internal Server Error, 502: Bad Gateway, 503: Service Unavailable
URL
Uniform Resource Locator의 약자이다.
Protocol & hostname & path & query로 구성되어있다.
Client가 서버에 무엇을 원하는지 나타낼 수 있다.(Request Methods)
GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS, TRACE가 있다.
GET, HEAD, OPTIONS, TRACE는 Server를 읽기만 하는 요청이다.
Safe는 안전하다(서버 데이터를 변경하지 않기 때문)
Idempotent : 여러 번 요청해도 서버상태를 같게 유지할 수 있는가? O
POST, PUT, DELETE, PATCH는 Server의 data를 변경할 수 있는 요청이다.
*PUT은 url의 내용을 전체적으로 업데이트해서 Idempotent가 Yes이지만 Patch는 부분만 Update하므로 Idempotent가 No이다.