프로토콜
통신규약 (정보를 주고 받는 약속)
장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계
즉, 통신(네트워킹) 할 때 정해진 메세지 규칙
http, https, ftp, sftp, telnet, ssh, ssl, smtp
Hyper Text Transfer Protocol
GET /1.html HTTP/1.1
Host: localhost: 8080
Connection: keep-alive
User-Agent:
.
.
Accept-Encoding:
GET
요청행
localhost
: 호스트는 네트워크의 컴퓨터 한대 한대를 식별하는 이름이다. 호스트를 작성하는 것은 우리가 요청하는 웹서버의 주소를 적는것이다. 호스트가 있으면 한 개의 웹서버가 여러 개의 도메인을 호스팅할 수 있다.
8080
: 포트라고 한다. 한대의 컴퓨터에는 여러 개의 서버가 설치되어있을 수 있고 8080이라는 포트번호의 웹서버를 가리킨다.
User-Agent
: 유저 컴퓨터의 브라우저의 정보 그리고 운영체제 정보를 가리킨다.
Accept-Encoding
: 해당 웹브라우저는 어떤 압축방식을 지원하는지 나타내는 것.
1xx: 정보 전달
2xx: 전달 성공
3xx: 리다이렉션
4xx: 클라이언트 오류
5xx: 서버 오류
아래 상황에서는 HTTP의 상태 코드는 어떻게 표현하는 것이 적절할지 논의해봅시다.
게시판 글 삭제 불가 - 요청한 리소스 찾을 수 없음, 리소스가 완전히 삭제된 것이 아님 - 404 Not Found
게시판 글 작성 완료 - 요청이 성공하고 리소스를 생성, post 요청에 의한 응답결과 - 201 Created
서버 애플리케이션 exception 발생 - 500 Internal Server Error
or 510 Not Extended (en-US)
게시글 찾을 수 없음 - 401 Unauthorized
or 403 Forbidden
서버 데이터베이스 오류 - 507 Insufficient Storage
게시글 접근 거부 -
451 Unavailable For Legal Reasons
[403 Forbidden](<https://developer.mozilla.org/ko/docs/Web/HTTP/Status/403>)
클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다. 예를들어 그들은 미승인이어서 서버는 거절을 위한 적절한 응답을 보냅니다. 401과 다른 점은 서버가 클라이언트가 누구인지 알고 있습니다.http://a.com 을 https://a.com 으로 리다이렉션 - 301 Moved Permanently
게시판 글 수정 완료 - put을 요청하여 200(ok)
요청 과부하로 접속 불가 - 사용자가 지정된 시간에 너무 많은 요청을 보냈습니다. - 429 Too Many Requests
접근 권한 없음 - 401 Unauthorized
or 403 Forbidden
요청 URL이 너무 김
[416 Requested Range Not Satisfiable](<https://developer.mozilla.org/ko/docs/Web/HTTP/Status/416>)
, Range
헤더 필드에 요청한 지정 범위를 만족시킬 수 없습니다; 범위가 타겟 URI 데이터의 크기를 벗어났을 가능성이 있습니다.HTTPS는 HTTP에 어떤 프로토콜이 추가된 것이며, 어떤 이점과 단점이 있을까? - SSL, TLS
HTTP v1.1와 v.2는 어떤 차이가 있고, 현재 우리가 주로 사용하는 버전은 몇일까?
frame: HTTP 2에서 제일 작은 정보의 단위, Header 와 Data 둘 중 하나
message: 요청 혹은 응답의 단위, 다수의 frame으로 이루어짐(클라이언트와 서버간의 요청과 응답)
stream: message가 여러개 모인 구조
대부분의 사이트들이 HTTP 1.1을 사용, 구글은 1.1과 2 둘 다 지원, 점차 v2로 바꾸는 추세
웹브라우저의 개발자도구를 이용해 프로토콜 확인 가능
HTTP 2 지원 사이트
HTTP v.3(2020)