HTTP protocol

Daeun Jung·2022년 4월 21일
0

research

목록 보기
6/10
  • HTTP는 Hyper Text Transfer Protocol의 약자

  • 인터넷에서 데이터를 주고받을 수 있는 통신 규약

  • request : 클라이언트가 서버에 정보를 전달해 서버의 액션을 요구하는 메시지

  • response : 서버가 클라이언트의 요청에 응답하는 메시지

  • HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 해준다.

  • HTTP Request,Response

    • 공통 헤더 : Date, Connection, Content-Length, Cache-Control, Content-Type, Content-Language, Content-Encoding
  • HTTP Request

    • 시작줄 : GET(POST)와 같은 메서드 / HTTP(규약) / HTTP 버전

    • 두 번째 줄 : Header 정보(요청에 대한 정보)

      • Host(서버 도메인 네임, 포트 포함)
      • User-Agent(사용자가 어떤 운영체제, 브라우저 등을 통해 요청을 보냈는지 정보)
      • Accept(클라이언트가 허용할 수 있는 파일 형식. txt/html, application/xml 등)
      • Accept-Charset(문자 인코딩방식 utf-8)
      • Accept-Encoding(원하는 컨텐츠 압축 방식 gzip 등)
      • Accept-Language(원하는 언어 ko-KR, en-US)
      • Authorization(인증 토큰(JWT든, Bearer 토큰이든)을 서버로 보낼 때 사용하는 헤더이다. API 요청같은 것을 할 때 토큰이 없으면 거절당하기 때문에 이 때, Authorization을 사용하면 된다.)
    • 공백

    • 세 번째 줄 : Body 내용

GET http://goddaehee.tistory.com/168 HTTP/1.1

Host: goddaehee.tistory.com
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: http://goddaehee.tistory.com/
Accept-Encoding: gzip, deflate
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: menuEnabled=1;
  • HTTP Response
    • 시작줄 : 규약 / 버전 200 OK (여기서 숫자는 메시지 요청 성공 여부)
    • 두 번째 줄 : Header 정보
      • server(웹서버 정보)
      • Access-Control-Allow-Origin(요청 Host와 응답 Host가 다르면 CORS 에러가 발생하는데 서버에서 응답 메시지 Access-Control-Allow-Origin 헤더에 프론트 주소를 적어주면 에러가 발생하지 않는다. ex) Access-Control-Allow-Origin: goddaehee.tistory.com)
      • Allow(특정 요청만 받는다. ex)Allow: GET - POST요청은 405 Metod Not Allowed 에러를 리턴)
      • Content-Disposition(응답 본문을 브라우저가 어떻게 표시할지 알려주는 헤더. inline : 웹페이지 화면에 표시, attachment : 다운로드)
      • Location(300번대 응답이나 201 응답일 때 어느 페이지로 이동할지 알려주는 헤더. HTTP/1.1 302 Found Location: /login 해당 번호 응답시 로그인 주소로 이동) 등
profile
백엔드 개발자입니다 :)

0개의 댓글