총 10분 중 11분
2001
시즌 2개, 그리고 영화
시즌 2: 5화 “아일랜드”
출연: 이나영, 김민준, 김민정, 현빈
장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
CS/Network HTTP Protocol 기초

*Node.js 프로그래밍 입문(고경희)를 읽고 작성한 글입니다. 


 

클라이언트는 서버로 자료를 요청하고, 서버는 클라이언트로 자료를 전송하는 방식으로 웹이 동작한다. 

  • HTTP request
  • HTTP response

 

근데 서로 사용하는 프로그래밍 언어도 다르고 동작 방식도 다르기 때문에 통일된 규칙, HTTP protocol을 사용해 자료를 주고 받는다.

 

1. HTTP request

클라이언트가 서버로 무엇인가 요청할 때는 웹 브라우저에 URL을 입력해서 요청한다. 

 

2. IP address & Port

우리는 문자로 입력하지만 사실 인터넷에서 서버에 접속하기 위해선 IP주소: 포트번호(211.47.28.14:443)가 필요하다. 

수많은 클라우드 컴퓨터와 서버 컴퓨터에게 각각 고유한 주소가 있기엔 숫자가 부족하다. 그래서 google, naver처럼 영문 이름를 사용하면 서버에서 자동으로 IP(Internet Protocol)주소를 할당해준다. Port 번호는 서버 프로그램 중 어느 프로그램을 실행할 지 알려준다. 

  • DomainDNS(Domain Name System Server)
  • 라우팅 프로토콜과 vlan은 트래픽 관리 개념

서버 프로그램은 파일 업로드/다운 프로그램, 웹 내용 관리 프로그램, 메일 전송/수신 프로그램 등 다양한 프로그램의 묶음으로 동작하는데, HTTP 프로토콜에서 웹은 80을 사용한다. 근데 구글 웹은 HTTP 가 자동으로 HTTPS 로 바뀌므로 443을 포트로 쓴다. 

번호  기능
20, 21 FTP(FILE Transfer)
25 SMTP(Simple Mail)
53 DNS
80 Web(HTTP)
110 POP3(Post Office) 이메일 수신
443 HTTPS

자 이제 원하는 주소로 접속을 했으니 서버가 어떻게 이걸 불러왔는지 확인해보자. 

3. Headers

전체 네트워크 상태

클라이언트가 서버에 요청하는 Request는 헤더와 본문으로 구성되어있다.

  • Request Headers에는 사용하는 시스템 정보, 웹 브라우저 정보, 사용한 언어 등이 담겨 있다.
  • Request 본문에는 사이트 주소가 있다. 

서버가 클라이언트에 응답하는 응답 메시지는 Response Headers, Response 본문으로 구성된다.

  • 헤더에는 현재 파일이 어떤 형식을 사용하는지, 인코딩은 무엇인지 등 파일과 관련된 기타 정보가 담겨있다.
  • 본문에 브라우저 창에 띄울 텍스트나 이미지같은 사이트 내용이 들어있다. 

 

 

3-1. Method

아까 서버에는 여러 프로그램이 있다고 했다. 클라이언트가 서버로 정보를 보내면서 서버 정보를 가져올 건지, 브라우저 화면에 입력한 정보를 서버에 전송하는 것인지 등 어떻게 데이터를 처리할 건지 방식을 미리 알려준다. 이것을 Method라고 한다. 

Request Method  
GET 서버 정보를 가져올 때 사용한다. URL의 문서를 응답으로 반환하여 URL이 바뀐다.
POST 서버에 데이터를 저장할 때 사용한다. 회원가입, 로그인 등 사용자가 입력한 정보가 POST를 통해 서버로 넘어간다.
PUT 서버에 있는 데이터를 수정(업데이트)할 때 사용한다. 이미 저장되어 있는 정보의 일부를 수정할 때 서버로 전송된다.
DELETE 서버에서 데이터를 삭제할 때 사용한다. 

 

3-2. Status Code

CODE Message Description
1xx Informational 계속 처리 중
2xx Successful 요청 성공
  200 OK  
  201 Created 요청이 성공적으로 처리되어 새로운 자료가 생성되었습니다. 
  204 No Content 요청이 성공적으로 처리되었지만 응답으로 반환할 자료가 없습니다. 
3xx Redirection 다른 위치로 이동
  301 Moved Permanently  
4xx Client Error  
  400 Bad Request 클라이어언트 요청이 잘못되었거나 유효하지 않습니다.
  401 Unauthorized 권한이 없어 거절되었지만 인증을 다시 시도할 수 있습니다.
  403 Forbidden 권한이 없어 거절되었고 인증을 시도하면 계속 거절됩니다.
  404 Not Found 해당 데이터를 찾을 수 없습니다.
5xx Server Error  
  500 Internal Server Error 서버에 요청을 처리하는 동안 오류가 발생했습니다.
  503 Service Unavailable  

 

200을 반환하면 서버가 요청을 성공했다는 것을 말한다. 

CS/Network HTTP Protocol 기초