애플리케이션 서비스 02. HTTP의 이해

2021. 4. 4. 20:50Computer(인강)/네트워크

728x90
반응형

안녕하세요 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등이 있다

728x90
반응형