5. HTTP 요청 프로토콜의 개념, URL, 구조, Method

Yeppi's 개발 일기·2022년 5월 10일
0

Web

목록 보기
5/7

1. HTTP 요청 프로토콜 이란?

브라우저에 의해서 자동으로 생성되고 설정됨


2. HTTP 요청 URL

http: // localhost : 8080 / board / login.html
  • 프로토콜 → http
    요청 전달 시 HTTP 프로토콜 사용

  • 프로토콜 구분자 → //
    프로토콜과 호스트 이름을 구분

  • 호스트(도메인) → localhost
    웹 서버가 설치된 컴퓨터(호스트)를 찾음

  • localhost = 현재 사용중인 컴퓨터
    전세계 수 많은 컴퓨터 중에 내 컴퓨터에 접근

  • 포트 → 8080
    8080 포트 사용하는 서버에 접근
    컴퓨터에 설치된 수많은 서버 중에 해당 포트 번호로 원하는 특정 서버 접근

  • 웹 애플리케이션 → BoardWeb
    해당 포트를 사용하는 서버에서 BoardWeb이란 웹 애플리케이션에 접근

  • 디렉토리 → board
    해당 애플리케이션에서 board 디렉토리에 접근

  • 파일 → login.html
    해당 디렉토리에서 login.html 파일 요청


JDBC URL

jdbc:h2:tcp://localhost/~/test  
  • http가 아닌, jdbc로 시작

  • 문법적인 규칙은 위와 동일



3. HTTP 요청 프로토콜 구조

  1. 브라우저는 웹 서버에 HTTP 요청 프로토콜 만든 후 전달한다.
  2. 브라우저는 웹 서버가 전송한 HTTP 응답 프로토콜기반으로, 사용자에게 결과 화면을 전달한다.

👉start-line

  • 가장 중요
  • 세가지 정보가 저장

1) 요청 방식 → Method

  • HTTP 요청을 특정하는 Method는 8가지
  • REST를 구현하기 위한 인터페이스
  • GET, POST, PUT, DELETE 가장 많이 사용
의미CRUD멱등성안전성Path VariableQuery ParameterDataBody
GET리소스 취득ROOOOX
POST리소스 생성, 추가CXXOO
PUT리소스 갱신, 생성C / UOXOO
DELETE리소스 삭제DOXOOX
HEAD헤더 데이터 취득OO
OPTIONS지원하는 메소드 취득O
TRACE요청 메시지 반환O
CONNECT프록시 동작의 터널 접속으로 변경X

멱등성 : 몇번을 서버에 요청하더라도 같은 응답 결과가 나오는 것
안전성 : 몇번을 서버에 요청하더라도 서버의 데이터에 변화가 생기지 않고 위험성이 없음


2) 요청 URI

  • URL에서 포트 번호 이후의 문자열 = 서버 접근 이후의 자원들
  • 서버가 자원을 검색하는 문자열

아래 링크에 URI 를 정리해두었다
3. URL과 URI의 차이점, URI 설계 패턴

3) 프로토콜/버전

  • 프로토콜 이름과 버전 정보
  • 일방적으로 1.1 버전


✍ GET, POST 방식 간단한 예제 ✍

http://www.ssamz.com:80/lecture/servlet01.html

GET BoardWeb/board/login.html HTTP/1.1
  • 브라우저의 url을 GET 방식으로 바꾼 것

  • 요청 방식 Method → GET
    요청 URL → BoardWeb/board/login.html
    프로토콜 이름/버전 → HTTP/1.1


GET 방식 : 디폴트
POST 방식 : POST로 직접 지정할 때만 POST 방식 이용 → method="post"

    <body>
    	<center>
    		<h1>회원 로그인</h1>
    		<hr>
    		<br>
    		<form action="#" method="post"> <!--post방식-->
    			<table border='1' cellpadding="0" cellspacing="0">
    				<tr>
    					<td bgcolor="orange">아이디</td>
    					<td><input type="text" size="20" /></td>
    				</tr>
    				<tr>
    					<td bgcolor="orange">비밀번호</td>
    					<td><input type="password" size="20" /></td>
    				</tr>
    				<tr>
    					<td colspan="2" align="center"><input type="submit"
    						value="로그인" /></td>
    				</tr>
    			</table>
    		</form>
    		<br> <a href="Korean.jpeg">태극기</a>
    		<hr>
    	</center>
    </body>

GET, POST의 자세한 실습은 다음 챕터에서 진행하려고 한다



👉message-header

  • Key: Value 형태로 브라우저 관련 정보 설정
Key설정 정보
Host요청하려는 서버 호스트 이름과 포트번호
User-agent브라우저의 이름과 버전 정보
Accept브라우저가 처리할 수 있는 MIME Type 목록
Accept-charset브라우저가 처리할 수 있는 문자열 인코딩 목록
Accept-language브라우저가 처리할 수 있는 언어 목록
Accept-encoding브라우저가 처리할 수 있는 압축 방식
CookieKey-Value 형태의 쿠키 정보.

👉CRLF

  • 공백

  • message-header와 body를 구분하기 위해 존재


👉message-body

  • 사용자가 입력한 정보 설정

  • start-line에 설정된 요청 방식에 따라 메시지 바디의 상태가 달라짐

profile
imaginative and free developer. 백엔드 / UX / DATA / 기획에 관심있지만 고양이는 없는 예비 개발자👋

0개의 댓글