# Ajax

# HTTP

  • Hypertext transfer protocol
  • 월드 와이드 웹의 주요 프로토콜
  • 브라우저는 사실 HTTP 클라이언트라고 할 수 있다. (페이지를 제공하는 서버는 HTTP 서버)
  • Ajax는 HTTP 프로토콜 이용해서 서버로 요청을 보냄. 그 형식을 구성해서 보내야 함.

# HTTP 요청

특정 서버에 연결이 이루어지면, HTTP 클라이언트는 다음 형식으로 요청 보냄

  • 시작 줄
    • 3개 부분. 메서드명(어떤 명령 요구할건지) / 서버 자원 경로 정보 / HTTP 프로토콜 버전
    • GET /testpage.html HTTP/1.0
  • 헤더 정보(생략 가능)
    • 지금 보내는 요청에 대한 정보 / 본문의 내용에 대한 정보. Key-Value쌍이 콜론으로 구분되어 한 줄씩 차지함.
    • User-Agent: Mozilla/4.0
    • Accept: text/plain, text/html # 서버로부터 오는 응답 중에서 어떤 종류의 정보를 받겠다. 서버에게 지금 요청을 내린 프로그램이 받아들일 수 있는것이 일반 텍스트와 HTML응답이다. (비디오, 오디오 등은 안 받음)
  • 빈칸
  • 본문 메세지(생략 가능)

# HTTP 응답

  • 시작 줄: 상태
    • 앞에(HTTP Request에서 보내주었던) HTTP버전 / 3개의 숫자로 이루어진 상태 값 / 그 상태에 대한 짧은 설명 문자열
    • HTTP/1.0 200 OK
  • 헤더 정보
    • key-value 쌍. 서버에 대한 정보나 서버가 보내는 내용에 대한 정보.

# 참고: 일반적인 상태 코드

  • 1**: 정보
  • 2**: 성공
    • 200 ok: 요청 성공적 수행
    • 204 No Content: 요청한 문서에 내용이 없음
  • 3**: 리다이렉트
    • 301 Moved Permanently: 요청한 자원이 다른 주소로 이동되었음
  • 4**: 클라이언트 에러
    • 401 Not Authorized: 권한 없음
    • 403 Forbidden: 서버가 요청을 거부하였음
    • 408 Request Timeout: 클라이언트가 서버가 지정한 타임아웃 시간 내에 응답을 보내지 않음
  • 5**
    • 500 Server Error: 비정상적인 스크립트로 인해 서버 설정에 에러 등등