-
[Web Protocols 정리하기] 1. URL 및 HTTPWeb/Protocol 2020. 9. 23. 11:06SMALL
웹 서버 개발 중 헷갈리고 모호하게 쓰이고 있는 프로토콜들이 많아서
내가 제대로 이해하기 위해 웹 프로토콜을 정리해본다.
1. URL (Uniform Resource Locator)
네트워크 상에서 자원이 어디있는지를 알려주기 위한 규약으로 웹 페이지 주소를 타나낸다.
웹 페이지 주소를 알아도 URL에 맞는 프로토콜이 있어야 제대로 접속할 수 있다.
protocol://computer_name:port/path?query
1) protocol: URL에 사용될 프로토콜 이름
2) computer_name: 도메인 이름
3) port: 접속할 포트 번호 (기본 80)
4) path: 원하는 자원의 위치
5) parameters: 원하는 자원에 대한 상세한 정보
2. HTTP (Hyper Text Transfer Protocol)
HTML과 같은 Hyper Text의 리소스를 가져올 수 있는 프로토콜로
모든 데이터 교환과 클라이언트 - 서버 프로토콜의 기초이다.
1) 메시지 포맷
클라이언트 - 서버는 평문 (ASCII) 메시지로 통신
요청 - 응답 메시지로 구성
요청 메시지
요청 내용, 헤더, 빈 줄, 기타 메시지로 구성
메소드 RFC 요청에 Body 있음 응답에 Body 있음 안전 Idempotent 캐시 기능 GET RFC 7231 X O O O O HEAD RFC 7231 X X O O O POST RFC 7231 O O X X O PUT RFC 7231 O O X O X DELETE RFC 7231 X O X O X CONNECT RFC 7231 O O X X X OPTIONS RFC 7231 optional O O O X TRACE RFC 7231 X O O O X PATCH RFC 5789 O O X X O 응답 메시지
상태표시 행(status code, reason message 포함), 응답 헤더필드(Content-Type: text/html 등), 빈 줄,
기타 메시지로 구성
2) 예제
클라이언트 요청
GET /restapi/v1.0 HTTP/1.1 Accept: application/json Authorization: Bearer UExBMDFUMDRQV1MwMnzpdvtYYNWMSJ7CL8h0zM6q6a9ntw
서버 응답
HTTP/1.1 200 OK Date: Mon, 23 May 2005 22:38:34 GMT Content-Type: text/html; charset=UTF-8 Content-Encoding: UTF-8 Content-Length: 138 Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux) ETag: "3f80f-1b6-3e1cb03b" Accept-Ranges: bytes Connection: close <html> <head> <title>An Example Page</title> </head> <body> Hello World, this is a very simple HTML document. </body> </html>
3) 응답코드
코드 메시지 설명 100 Continue 클라이언트로부터 일부 요청을 받았으니 나머지 요청 정보를 계속 보내주길 바람. (HTTP 1.1에서 처음 등장) 200 OK 오류 없이 전송 성공. 304 Not modified 클라이언트의 캐시에 이 문서가 저장되었고 선택적인 요청에 의해 수행됨 (보통 지정된 날짜보다 더 나중의 문서만을 보여주도록 하는 If-Modified-Since 헤더의 경우). 400 Bad Request 요청 실패. 문법상 오류가 있어서 서버가 요청사항을 이해하지 못함. 404 Not Found 문서를 찾을 수 없음. 서버가 요청한 파일이나 스크립트를 찾지 못함. 500 Internal Server Error 서버 내부 오류. 502 Bad gateway 게이트웨이 상태 나쁨. 504 Gateway timeout 프록시나 게이트웨이의 역할을 하는 서버에서 볼 수 있음. 초기 서버가 원격 서버로부터 응답을 받을 수 없음. (HTTP 1.1 에서 새로 등장)
[참고 문헌]
1. ko.wikipedia.org/wiki/URL
2. joshua1988.github.io/web-development/web-protocols/
3. developer.mozilla.org/ko/docs/Web/HTTP/Overview
4. ko.wikipedia.org/wiki/HTTP
LIST'Web > Protocol' 카테고리의 다른 글
[Web protocols 정리하기] 3. SSL, Telnet (0) 2020.11.19 [Web Protocols 정리하기] 2. FTP, SMTP, MIME (0) 2020.09.29 댓글