1. HTTP 프로토콜 개요
1. HTTP란 무엇인가요? 하이퍼텍스트 전송 프로토콜.
2. 클라이언트와 서버의 데이터 표준을 설명합니다. 이 프로토콜은 W3C에서 유지 관리합니다.
버전:
HTTP1.0: 요청이 있을 때마다 네트워크 연결을 설정해야 합니다.
HTTP1.1: (주류) in 하나의 네트워크 연결에서 여러 요청과 응답이 이루어집니다. 머리 몇 개 더.
3. 명확성: 브라우저는 다음 태그를 발견하면 자동으로 요청을 보냅니다.
2. HTTP 프로토콜의 구성
1. 요청 부분
2. 대응부분
3. 요청 부분에 대한 자세한 설명
1. 요청 라인:
GET /app1/1.html HTTP/1.1
GET: 요청 방법.
일반적인 요청 방법: GET(기본값), POST, HEAD, OPTIONS 등
GET: 기본값
http://localhost:8080/app1/1.html?username=abc&password=123
제출된 데이터가 표시됩니다. 프로토콜의 첫 번째 줄은 길이 제한이 있습니다.
(데이터를 요청할 때 권장) POST:
/app1/1.html: 요청한 리소스 주소입니다. (URI)
URL: 프로토콜 + 호스트: 포트 + 리소스 주소
http://localhost:8080/app1/1.html
HTTP/1.1: 클라이언트 브라우저에서 사용하는 프로토콜 버전입니다.
2. 메시지 헤더 요청: (메모하고 일반적으로 사용되는 헤더 기억)
기능: 추가 정보(비밀 지침)를 서버에 전송
수락: 클라이언트가 수락할 수 있는 데이터 유형을 서버에 알립니다. (MIME 유형)
파일 시스템: 파일 확장자로 서로 다른 파일을 구분합니다. txt jpeg
MIME 유형: 큰 유형/작은 유형. txt--->text/plain html---->text/html js---->text/javascript (특정 대응: Tomcatconfweb.xml)
Accept-Encoding: 서버에 알리고 클라이언트에 허용 가능 압축 인코딩. 예를 들어 gzip
Accept-Language: 클라이언트가 지원하는 언어를 서버에 알립니다.
리퍼러: 어느 페이지에서 왔는지 서버에 알려줍니다.
기능: 핫링크 방지에 대한 광고 효과 통계.
Content-Type: 요청 본문의 MIME 유형을 서버에 알립니다.
기본 유형: application/x-www-form-urlencoded(양식 enctype 속성의 기본값)
구체적인 실시 예: 사용자 이름 =abc&password=123
기타 유형: multipart/form-data(파일 업로드 시 사용)
If-Modified-Since: 현재 액세스 중인 리소스와 캐시에 있는 파일의 마지막 수정 시간을 서버에 알립니다. .
User-Agent : 서버에 브라우저 종류를 알려주는
Content-Length : 요청 본문의 데이터 길이
Cookie : (*****중요) 세션 관리 관련
3. 요청 텍스트:
서버에 데이터를 제출하려면 양식의 입력 필드에 이름 속성 값이 있어야 합니다.
POST 요청에만 텍스트가 있습니다.
사용자 이름=abc&password=123
4. 응답 부분에 대한 자세한 설명
1. 응답 부분 상세 설명
응답 라인:
HTTP/1.1 200 OK
HTTP/1.1: 서버에서 사용하는 프로토콜 버전 설명
200: 응답 상태 코드
1xx 2xx 3xx 4xx 5xx
2xx: 처리됨
4xx: 요청 오류
5xx: 서버 오류
일반적으로 사용되는 응답 코드를 기억하세요.
200: 모든 것이 정상입니다
302/307 : 리디렉션 요청
304: 서버의 리소스가 변경되지 않았습니다.
404: 접속한 주소가 존재하지 않습니다.
500: 서버측 오류
OK: 응답 설명
2. 응답 헤더:
기능: 서버에서 클라이언트로 전달되는 추가 정보(비밀번호 명령)
위치: 방문 중인 주소를 클라이언트에 알립니다.
302/307로 요청 리디렉션 구현
Content-Encoding: 클라이언트에게 응답 본문에 사용된 압축 인코딩(gzip)을 알립니다.
Content-Length: 클라이언트에게 응답 본문의 길이를 알립니다.
Content -Type: 응답 텍스트의 MIME 유형을 클라이언트에 알립니다. 기본 텍스트/html
Refresh: 정기적으로 새로 고치도록 클라이언트에 알림
Content-Disposition: 다운로드하여 클라이언트에
열도록 알림 ****) 세션 관련
만료: -1 시간 제어
Cache-Control: no-cache(1.1)
Pragma: no-cache(1.0)
브라우저에 캐시하지 않도록 지시하기 위해 함께 사용됩니다.
3. 응답 텍스트:
브라우저에서 파싱한 텍스트 내용은 마우스 오른쪽 버튼을 클릭하여 소스 코드를 보는 것과 같습니다.