2021. 4. 4. 20:50ㆍComputer(인강)/네트워크
안녕하세요 bannavi입니다^ㅅ^
오늘은 애플리케이션 서비스 중 하나인 HTTP에 대해 살펴보도록 할거에요
바로 시작해보도록 하겠습니다
HTTP 란?
HTTP(HyperText Transfer Protocol)
WWW상에서 정보를 공유하는 프로토콜 - Port80 - HTML
WWW(World Wide Web) - 전세계에 연결된 인터넷을 통해 정보를 공유
HTML(Hyper Text Markup Language) - 웹페이지 언어
팀 버너스 리 - 1989 WWW 프로젝트 제안
1996년 HTTP v1.0 - RFC 1945
1999년 HTTP v1.1 - RFC 2616 - 개선 및 업데이트
2015년 HTTP/2 - RFC 7540
https://www.w3.org/People/Berners-Lee/
Tim Berners-Lee
Tim Berners-Lee Sir Tim Berners-Lee invented the World Wide Web in 1989. He is the co-founder and CTO of Inrupt.com, a tech start-up which uses, promotes and helps develop the open source Solid platform. Solid aims to give people control and agency over th
www.w3.org
HTTP 개요
* URL(Uniform Resource Locator)
웹 페이지를 찾기위한 주소
http://www.naver.com:80/index.html
네이버
네이버 메인에서 다양한 정보와 유용한 컨텐츠를 만나 보세요
www.naver.com
Web Browser
WEB Server
DB Server
* HTML(HyperText Markup Language) 웹페이지 언어
1995년 HTML 2.0 - RFC 1866, 2014년 HTML5
크롬 브라우저에서 F12 - HTML 소스 확인
HTTP Request
Client가 Server에게 특정 Method를 사용하여 요청
Head(+Start Line), Body로 구성
Start Line
HTTP Method / Request target / HTTP version
HTTP Method: 요청의 목적 - GET, POST, PUT, HEAD, DELETE
GET: 리소스 요청, POST:내용 전송, PUT:내용 갱신
HEAD:리소스에 대한 정보만 요청, DELETE: 리소스 제거
Request target : 리소스 경로
HTTP version : HTTP1.1 or HTTP/2
HTTP Request
Head
Accept : 클라이언트가 허용 가능한 파일 형식
User-Agent : 클라이언트의 OS, 브라우저 정보
Host : 서버의 도메인 네임
Client 요청에 따른 Server의 응답
Head + Body
Version / Status / Status Message
Version : HTTP 버전, Status : 상태, Status Message : 상태 메시지
Date, Content-location, etag : 캐시 정보 업데이트
Last-modified : 요청한 데이터의 최종 수정일
Content-Length : 요청한 데이터 길이
응답 헤더
Status Code
이 사이트에 들어가면 확인할 수 있음 : https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
HTTP/1.1: Status Code Definitions
part of Hypertext Transfer Protocol -- HTTP/1.1 RFC 2616 Fielding, et al. 10 Status Code Definitions Each Status-Code is described below, including a description of which method(s) it can follow and any metainformation required in the response. 10.1 Inform
www.w3.org
2로 시작하는건 Success의 의미를 갖는다
2** Success - 200 OK
3으로 시작하는건 A사이트에 접속을 했는데 A사이트는 물리적으로 신규 서버를 구축해서 또 하나의 서버를 운영하고 있는것.
그런데 갑자기 바꿔버리면 혼동이 되니까 기존의 서버에 접속하시되, 서버의 실직적인 내용은 새로운 신규 서버로 이동이 됩니다.
즉, redirection해주는것
3** Redirection - 307 Temporary Redirect
4로 시작하는건 Client쪽 문제이다. 어떤 페이지에 접속했는데 페이지가 안뜬다. 근데 4라는 코드로 응답을 주면
그건 사용자 문제라는 뜻입니다.
4** Client Error
400 Bad Request 응 잘못 요청ㅇㅇ
401 Unauthorized 응 권한이 없엉
404 Not Found 엥 너가 요청한 페이지 없는 페이지인데 왜 요청했니
5로 시작하면 서버의 문제입니다. 이건 정말정말 문제가 큰겁니다. 서버가 죽었다는 거거든요
5** Server Error
500 Internal Server Error 응 인터넷 서버에 문제 생겼어. 서버 데몬이 죽었거나 서버가 꼬여가지고..
500 Bad Gateway 응 gate에 문제가 있다는거네
503 Service Unavailable 응 서비스 가용 능력이 없네..예를들어 수강신청할때 만명의 학생들이 하나의 서버에 몰리게 되는데, 웹서버라는것은 버퍼가 있습니다. 처리할 수 있는 한계가 5천개인데 만개가 몰리면 당연히 서비스가 이용가능하지 않다고 뜨겠죠
Wrap up
* HTTP(HyperText Transfer Protocol)는 WWW 상에서 정보를 공유하는 프로토콜
* HTML(HyperText Markup Language) - 웹페이지 언어
* 1999년 HTTP v1.1 - RFC 2616, 2015년 HTTP /2 - RFC 7540
* URL(Uniform Resource Locator)은 웹 페이지를 찾기 위한 주소
* HTTP 통신은 Request-Client와 Response-Server로 구성
* HTTP의 주요 요청 메소드로 GET, POST, PUT등이 있다
'Computer(인강) > 네트워크' 카테고리의 다른 글
애플리케이션 서비스 04. 메일 서비스 (0) | 2021.04.04 |
---|---|
애플리케이션 서비스 03. Cookie & SSL/TLS (0) | 2021.04.04 |
애플리케이션 서비스 01. DNS의 이해 (0) | 2021.04.04 |
TCP와 NAT 04. TELNET & SSH (0) | 2021.04.04 |
TCP와 NAT 03. NAT의 개요 (0) | 2021.04.04 |