티스토리 뷰

WEB

HTTP 프로토콜

stdbc 2019. 10. 2. 02:33

HTTP(Hypertext Transfer Protocol)

  • 서버와 클라이언트가 인터넷상에서 데이터를 주고받기 위한 프로토콜
    • 프로토콜: 통신을 하기 위한 규약 ex) HTTP, FTP, SMTP, POP 등
  • 클라이언트인 웹브라우저가 HTTP를 통하여 서버로부터 웹페이지나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달한다.

HTTP 통신방식

  • 요청(Request)와 응답(Response)
  • stateless
    • 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에, 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답을 처리할 수 있다
    • 연결을 끊어버리기 때문에, 클라이언트의 이전 처리 상황을 알 수가 없다. 그저 요청에 대해 독립적으로 응답만 보내줌
    • 항상 필요한 데이터를 포함시켜서 보내야 하는 문제를 해결하기 위해, 쿠키(cookie)나 세션(session)등을 사용해서 필요한 진행과정, 데이터를 저장한다

HTTP 요청 구조

 

  • Method
    • HTTP 요청이 의도하는 액션을 정의하는 부분
    • GET, POST, PUT, DELETE 등
  • Path
    • HTTP 요청의 목표 주소
  • Header
    • HTTP 요청 그 자체에 대한 정보를 담고 있는 부분
    • KEY: VALUE
      • Host: localhost:8080 (필수)
      • User-Agent: Mozila/5.0 (요청을 보내는 클라이언트의 정보, 예를 들면 웹브라우저)
      • Accept-Language: fr
      • Content-length: 1434
  • Body
    • HTTP 요청이 전송하는 데이터를 담고 있는 부분
    • 전송하는 데이터가 없으면 (like GET, HEAD, DELETE) Body는 비어있음

HTTP 응답 구조

  • Status code, Status message
  • Header
    • request header와 동일
    • 단, HTTP response 시에만 사용되는 헤더: User-Agent 대신 Server 헤더 사용
      • Content-Type: text/html
      • Server: Apache
  • Body
    • request body와 동일
    • 전송하는 데이터가 없으면 비어있음

주요 HTTP 메소드

  • GET : 서버로부터 정보를 요청할 때 사용 (SELECT)
    • 데이터의 생성, 수정, 삭제 등의 변경사항 없이 단순히 데이터를 받아오는 경우 사용
    • 데이터를 받아올 때 사용되어서 HTTP response의 body가 비어있는 경우가 많음
    • 최초의 웹서버는 GET 방식만 지원했었음
  • POST : 정보를 밀어넣을 때 사용 (INSERT)
    • 데이터를 생성, 수정, 삭제 요청을 할 때 사용
  • PUT : 정보를 업데이트할 때 사용 (UPDATE)
  • DELETE : 정보를 삭제할 때 사용 (DELETE)
  • HEAD : (HTTP)헤더 정보만 요청한다. 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용
  • OPTIONS : 웹서버가 지원하는 메소드들이 무엇이 있는지 알고자 할 때 사용
  • TRACE : 클라이언트의 요청을 그대로 반환한다. 예컨데 echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용

 


HTTP - 위키백과, 우리 모두의 백과사전

웹의 동작 (HTTP 프로토콜 이해)

HTTP의 구조 및 핵심 요소

WEB2 - HTTP

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함