-
[HTTP] HTTP 정의, 메소드, 메세지Environment(개발환경)/Web 2020. 12. 24. 15:53반응형
Wecode 세션이었지만, 중요한 개념이기도 하고 강의 중간중간 검색을 통해 내용을 보완해가면서 별도 포스팅을 하였다.
🧐 HTTP란?
웹 상에서 커뮤니케이션을 하는 통신규약. (개발자 도구 Network 탭에 표시됨)
- HyperText : 문서와 문서가 링크로 연결되어 있음을 뜻함
- Transfer : 전송하다(HTML 웹페이지 문서)
- Protocol : 컴퓨터끼리 어떻게 주고받는지 대한 소통방식 또는 약속
- HTTPS : SSL/TLS 의해 암호화된 데이터를 트랙스액션 (주민번호, 비밀번호 등 민감한 정보 교류에 유리함)
- SSL(Secure Socket Layer, 보안 소켓 계층) : 웹페이지와 서버(혹은 서버간) 전송되는 데이터를 암호화하여 보안유지하는 표준기술
- TLS(Transfer Layer Security, 전송 계층 보안) : SSL의 최신 및 상위호환 버전
- 출처 : Digicert 공식 홈페이지
- HTTP의 두가지 특징
1) Request(요청) / Response(응답)
- Request : 페이지 -> 서버
- Response : 서버 -> 페이지
2) Stateless, Connectionless : HTTP 통신(req/res)은 과거 HTTP 통신에 대한 내용을 전혀 알지 못함
- 모든 트랜스엑션은 한 사이클에 끝나며, 바로 연결이 끊어진다.
- 불특정 다수를 대상으로 하는 서비스에 효율적인 형태이다.
- 기억되지 않는 단점을 보완하기 위해, 쿠키 / 세션 / 로컬 스토리지 에 반영구적으로 저장을 시키기도 한다.
- HTTP2
HTTP 1.1의 업그레이드 버전으로, 2015년에 출시되었다. 빠르고 효율적이며, secure 성질이 강해졌다.
📧 Request / Response 메세지 구조
Request, Response 는 일정한 형식을 가진 메세지로 트랜스액션 된다. 또한, 각 메세지에서 활용되는 메소드나 의미를 가진 코드가 있다.
- Request 메세지 구조
- Start Line : 메소드, 주소, 버전 -- POST /users/login/HTTP/1.1
- Headers : 요청정보 -- Host(타겟 호스트), User-Agent(클라이언트 정보), Content-Length(body길이), Content-Type(body타입)
- Body : 요청할 때 참고하는 데이터를 전송 -- { username: ~, password: ~ }
* Request Methods
- GET: 서버로 부터 데이터를 받아오기만 할 때(접속해서 데이터 불러올 때)
- POST: 서버에 데이터를 생성하고자 할 때
- PUT: 서버의 데이터를 수정 위주로 요청할 때 (PATCH 도 있음)
- DELETE: 서버의 데이터를 삭제
- HEAD: 서버 리소스의 헤더(메타 데이터의 취득), 본문은 제외
- OPTIONS: 리소스가 지원하고 있는 메소드의 취득가능 여부 (Allow: GET, POST, HEAD)
- 이외 TRACE(경로), CONNECT(중간서버) 등의 메소드가 있다.
- Response 메세지 구조
- Status Line : 버전, status code, status text -- HTTP/1.1 200 OK
- Headers : Request의 Headers와 동일하다.
- Body : 응답의 실제 데이터를 포함하는 부분 -- { token: ~ }
* Status Code 종류
- 200 : 200(OK), 201(Created - 새로 생성됨)
- 400 : 400(요청 body 자료형식 오류), 401(권한 없음), 403(forbidden, 금지된 요청), 404(not found) 등등..
- 500 : 서버 사이드 문제이다.
이번주 세션들이 공통적인 것 같다. HTTP는 특히 개발공부 전부터 url에서 자주 보아왔던 구문이었고, 대충 프로토콜이라는 점은 알았다.
이 규약이 어떠한 내용을 의미하는지, 규약의 메신저(req, res)와 메세지 형식까지 공부하면서 종종 접한 403, 404 에러의 의미도 깨우쳤다.
출처 : rosewwross 님의 블로그 (https://velog.io/@rosewwross/Http-and-Request-and-Response-hok6exbnfb)
반응형'Environment(개발환경) > Web' 카테고리의 다른 글
[Web] 배포 - #2. PaaS 사용법(Netlify, Heroku) (0) 2021.03.27 [Web] 배포 - #1. Cloud Service (0) 2021.03.23 [Storage] 로컬 스토리지 / 세션 스토리지 / 쿠키 (0) 2021.03.04 [Axios] Axios : 비동기 통신 라이브러리 (0) 2021.03.04 [Web] Web 동작원리 (0) 2020.12.25