Home [Web] HTTP
Post
취소

[Web] HTTP

[Web] HTTP

HTTP(Hyper Text Transfer Protocol)

  • 데이터를 주고 받기 위해 정의한 통신 프로토콜
  • 웹을 기준으로 브라우저와 서버 간에 데이터를 주고 받기 위한 방식으로 HTTP 프로토콜 사용

HTTP의 특징

  • 상태가 없는 프로토콜(Stateless)
    • 데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가 됨
    • 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고, 다수의 요청 처리 및 서버의 부하를 줄 일 수 있는 성능상의 이점이 생김
    • 일반적으로 TCP/IP 통신 위에서 동작
    • 기본 포트는 80번

URL(Uniform Resource Locators)

  • 서버에 Resource를 요청하기 위해 입력하는 영문주소
  • IP주소는 숫자로 되어있어 기억하기 어렵지만, URL은 영문으로 되어있어 기억하기 쉬움
  • url 구조

HTTP 요청 메서드(HTTP Verbs)

주요 메서드

  • GET: 존재하는 자원에 대한 요청
  • POST: 새로운 자원을 생성
  • PUT: 존재하는 자원에 대한 변경
  • DELETE: 존재하는 자원에 대한 삭제

기타 요청 메서드

  • HEAD: 서버 헤더 정보를 얻음. GET과 비슷하지만 Response Body를 반환하지 않는다
  • OPTIONS: 서버 옵션들을 확인하기 위한 요청. CORS에서 사용한다

HTTP 상태 코드

  • 서버에서 설정해주는 응답정보
  • 2xx - 성공
    • 200 : GET 요청에 대한 성공
    • 204 : No Content. 성공했으나 응답 본문에 데이터가 없음
    • 205 : Reset Content. 성공했으나 클라이언트의 화면을 새로 고침하도록 권고
    • 206 : Partial Conent. 성공했으나 일부 범위의 데이터만 반환
  • 3xx - 리다이렉션 : 클라이언트가 이전 주소로 데이터를 요청하여 서버에서 새 URL로 리다이렉트를 유도
    • 301 : Moved Permanently, 요청한 자원이 새 URL에 존재
    • 303 : See Other, 요청한 자원이 임시 주소에 존재
    • 304 : Not Modified, 요청한 자원이 변경되지 않았으므로 클라이언트에서 캐싱된 자원을 사용하도록 권고. ETag와 같은 정보를 활용하여 변경 여부를 확인
  • 4xx - 클라이언트 에러 : 대부분 클라이언트의 코드가 잘못된 경우
    • 400 : Bad Request, 잘못된 요청
    • 401 : Unauthorized, 권한 없이 요청. Authorization 헤더가 잘못된 경우
    • 403 : Forbidden, 서버에서 해당 자원에 대해 접근 금지
    • 404 : Not Found, 요청한 자원이 서버에 없음
    • 405 : Method Not Allowed, 허용되지 않은 요청 메서드
    • 409 : Conflict, 최신 자원이 아닌데 업데이트하는 경우. ex) 파일 업로드 시 버전 충돌
  • 5xx - 서버 에러
    • 501 : Not Implemented, 요청한 동작에 대해 서버가 수행할 수 없는 경우
    • 503 : Service Unavailable, 서버가 과부하 또는 유지 보수로 내려간 경우

HTTP와 HTTPS의 차이점

HTTPS(Hyper Transfer Protocol Secure)

  • 기존 프로토콜(컴퓨터 사이의 데이터 교환 방식 규칙 정의)에서 데이터가 쉽게 도난 당할 수 있는 것을 방지하기 위해 SSL(보안소켓)을 사용하면서 브라우저와 서버 사이에 안전하게 암호화된 연결을 하게 해줌
  • TLS(전송 계층 보안) 프로토콜을 통해서 보안 유지
    • TLS : 데이터 무결성 제공
      • 데이터 무결성: 데이터가 전송 중에 손상되거나 수정되는 것을 방지
This post is licensed under CC BY 4.0 by the author.