HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📝
프론트엔드 스쿨 교안(1기)
/
📝
HTTP/HTTPS
📝

HTTP/HTTPS

URL(Uniform Resource Locator)

  • 자원이 어디 있는지를 알려주기 위한 규약
  • 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있음
  • 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속(FTP 프로토콜인 경우에는 FTP 클라이언트를 이용해야 하고, HTTP인 경우에는 웹 브라우저를 이용해야 한다. 텔넷의 경우에는 텔넷 프로그램을 이용해서 접속)
출처 : Wiki

HTTP(Hypertext Transger Protocol)

  • HTML, XML, Javascript, 오디오, 비디오, 이미지, PDF, Etc
  • 요청 또는 상태 라인 / 해더(생략가능) / 빈줄(해더의 끝) / 바디(생략가능)
  • HTTPS (HTTP Secure)

HTTP request ex 1

GET /stock.html HTTP/1.1 Host www.paullab.co.kr

HTTP request ex 2

GET /index.html HTTP/1.1 user-agent: MSIE 6.0; Windows NT 5.0 accept: text/html; */* cookie: name = value referer: http://www.naver.com host: www.paullab.co.kr
  1. 데이터 처리 방식, 기본 페이지, 프로토콜 버전.
  1. User-Agent: 사용자 웹 브라우저 종류 및 버전 정보.
  1. Accept: 웹 서버로부터 수신되는 데이터 중 웹 브라우저가 처리할 수 있는 데이터 타입을 의미.
    1. 여기서 text/html은 text, html 형태의 문서를 처리할 수 있고,  /는 모든 문서를 처리할 수 있다는 의미. (이를 MIME 타입이라 부르기도 한다.)
  1. Cookie: HTTP 프로토콜 자체가 세션을 유지하지 않는 State-less(접속상태를 유지하지 않는) 방식이기 때문에 로그인 인증을 위한 사용자 정보를 기억하려고 만든 인위적인 값. 즉 사용자가 정상적인 로그인 인증 정보를 가지고 있다는 것을 판단하고자 사용.
  1. Referer: 현재 페이지 접속 전에 어느 사이트를 경유했는지 알려주는 도메인 혹은 URL 정보.
  1. Host: 사용자가 요청한 도메인정보.

HTTP Response ex 1

HTTP/1.1 200 OK ## 상태라인 Content-Type: application/xhtml+xml; charset=utf-8 ## 해더 ## 빈줄 <html> ## 바디 ... </html>

HTTP Response ex 2

HTTP/1.1 OK 200 Server: NCSA/1.4.2 Content-type: text/html Content-length: 107 <html> ... </html>
  1. 웹 프로토콜 버전 및 응답 코드 정보가 포함.
  1. 웹 애플리케이션 종류 및 버전 정보가 포함.
  1. MIME 타입 정보가 포함.
  1. 수신 Body 사이즈 정보가 포함.
  1. 사용자가 요청한 웹 페이지 정보가 포함.

HTTP 처리방식

  • GET : 리소스 취득 (? 뒤에 이어붙이는 방식 - 작은 값들)
  • POST : 리소스 생성 (Body에 붙이는 방식 - 상대적으로 큰 용량)
  • PUT : 리소스 수정 요청
  • DELETE : 리소스 삭제 요청
  • HEAD : HTTP 헤더 정보만 요청, 해당 자원 존재 여부 확인 목적
  • OPTIONS : 웹서버가 지원하는 메소드 종류 반환 요청
  • TRACE : 요청 리소스가 수신되는 경로 확인
  • CONNECT : 요청 리소스에 대해 양방향 연결 시작

상태 코드

  • 200 : 서버가 요청을 제대로 처리.
  • 201 : 성공적으로 요청되었으며 서버가 새 리소스를 작성.
  • 202 : 서버가 요청을 접수했지만 아직 처리하지 않음.
  • 301 : 요청한 페이지를 새 위치로 영구적으로 이동.
  • 403 : 서버가 요청을 거부.
  • 404 : 서버가 요청한 페이지를 찾을 수 없음.
  • 500 : 서버에 오류가 발생하여 요청을 수행할 수 없음.
  • 503 : 서버가 오버로드되었거나 유지관리를 위해 다운되었기 때문에 현재서버 사용 불가.
출처 : WIKI
HTTP 상태 코드 - HTTP | MDN
HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응답, 리다이렉트, 클라이언트 에러, 그리고 서버 에러. 상태 코드는 section 10 of RFC 2616 에 정의되어 있습니다. 이 임시적인 응답은 지금까지의 상태가 괜찮으며 클라이언트가 계속해서 요청을 하거나 이미 요청을 완료한 경우에는 무시해도 되는 것을 알려줍니다.
HTTP 상태 코드 - HTTP | MDN
https://developer.mozilla.org/ko/docs/Web/HTTP/Status
HTTP 상태 코드 - HTTP | MDN
HTTP 요청 메서드 - HTTP | MDN
HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. 간혹 요청 메서드를 "HTTP 동사"라고 부르기도 합니다. 각각의 메서드는 서로 다른 의미를 구현하지만, 일부 기능은 메서드 집합 간에 서로 공유하기도 합니다. 이를테면 응답 메서드는 안전하거나, 캐시 가능 (en-US)하거나, 멱등성을 가질 수 있습니다.
HTTP 요청 메서드 - HTTP | MDN
https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
HTTP 요청 메서드 - HTTP | MDN
HTTP 헤더 - HTTP | MDN
HTTP 헤더는 클라이언트와 서버가 요청 또는 응답으로 부가적인 정보를 전송할 수 있도록 해줍니다. HTTP 헤더는 대소문자를 구분하지 않는 이름과 콜론 ':' 다음에 오는 값(줄 바꿈 없이)으로 이루어져있습니다. 값 앞에 붙은 빈 문자열은 무시됩니다. 커스텀 등록 헤더는 'X-'를 앞에 붙여 추가될 수 있지만, 이 관례는 RFC 6648에서 비표준 필드가 표준이 되었을때 불편함을 유발하는 이유로 2012년 6월에 폐기되었습니다.
HTTP 헤더 - HTTP | MDN
https://developer.mozilla.org/ko/docs/Web/HTTP/Headers
HTTP 헤더 - HTTP | MDN
 
  • localhost와 127.0.0.1은 다릅니다. 실제 테스트에서 쿠키정보가 127.0.0.1 제대로 작동하지 않을 수도 있어요. 실습을 통해 알려드리도록 하겠습니다.
 

 
  • SSG.com 하고 yes24.com 은 HTTPS를 사용하지 않고 있습니다.
  • 모두가 HTTPS를 사용하는 것은 아닙니다. HTTP를 사용하는 곳도 많은데요. 우선 ISMS 인증에 대해 살펴보고 가도록 하겠습니다.
    • ISMS 인증 획득 | NHN커머스
      개인정보대량 유출, 기업의 서버 해킹까지 하루가 멀다 하고 보안 사고가 터지고 있는 요즘!! 보안은 곧 '경쟁력' 인 시대가 되었습니다. NHN커머스 또한 '보안' 을 강화하기 위해 많은 노력을 하고 있습니다. 대표적으로 오늘 소개해 드릴 것은 바로! 정보보호관리체계(ISMS : Information Security Management System) 인증입니다. 사실 저희 NHN커머스는 정보보호관리체계(ISMS) 인증을 받기 위해, 내부적으로 그리고 외부적으로 철저한 보안 점검을 실시해 왔습니다.
      https://www.nhn-commerce.com/etc/isms.gd
      ISMS 인증 획득 | NHN커머스
  • 여기서 HTTPS가 필수 사항이 아닌 것을 알 수 있어요. 그렇다면 HTTP를 사용하는 것과 사용하지 않는 것은 무엇이 차이가 있을까요?
  • HTTPS는 신뢰할 수 있는 기관에 SSL인증서를 줍니다. 그리고 암호화를 하죠. HTTP는 일반 텍스트로, 아이디 비밀번호가 그대로 노출됩니다. 와이어샤크 같은 것으로 스니핑 기능을 사용하면 패킷 잡아 볼 수 있어요.
  • 대칭키(암호문, 비밀편지)와 비대칭키(보내는 키와 해독하는 키가 다름)
  • 대칭키는 키를 주는 중간에 가로챌 수 있음
  • HTTPS는 비대칭키
  • CA인증을 받은 곳에서 발급 가능(AWS는 URL구매 후 인증서 구매해서 바로 연결 가능)
  • 개인이 인증서를 받으면 브라우저 내장 CA 리스트를 통해 확인합니다.