1.request
GET /example-page HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,ko;q=0.8
Connection: keep-alive
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.DQw4w9WgXcQ
{
"username": "example_user",
"password": "secure_password",
"email": "example@example.com"
}
1-1.start line
GET /example-page HTTP/1.1
- GET 메소드는 서버에서 특정 리소스를 가져오는 데 사용
- /example-page: 요청할 자원의 경로
- HTTP/1.1: HTTP 버전
1-2.헤더
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,ko;q=0.8
Connection: keep-alive
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.DQw4w9WgXcQ
Content-Type: application/json
- Host: 요청 대상 서버의 주소.
- User-Agent: 클라이언트의 정보(브라우저, 운영체제 등)
- Accept: 클라이언트가 받을 수 있는 콘텐츠 타입.
- Content-Type: 서버가 응답하는 콘텐츠의 형식.
- Connection: 요청 후 연결을 유지할지 여부.
- Authorization: 서버에 인증 정보 포함.
- Accept-Encoding: 서버에서 압축된 콘텐츠 수락.
- Accept-Language: 사용자의 언어 설정.
- Content-Type: 바디 타입
1-3. 바디
{
"username": "example_user",
"password": "secure_password",
"email": "example@example.com"
}
2.respnse
HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 12345
Date: Tue, 22 Jan 2025 12:00:00 GMT
Server: Apache/2.4.29 (Unix)
Cache-Control: max-age=3600, must-revalidate
Expires: Tue, 22 Jan 2025 13:00:00 GMT
Last-Modified: Mon, 21 Jan 2025 18:00:00 GMT
ETag: "5d5f-60a68b9e1b38b"
Connection: keep-alive
Set-Cookie: sessionid=abcd1234; Path=/; HttpOnly; Secure
Vary: Accept-Encoding, User-Agent
Content-Encoding: gzip
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, OPTIONS
Access-Control-Allow-Headers: Content-Type, Authorization
<!DOCTYPE html>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<h1>Welcome to My Website</h1>
<p>This is a sample HTML page.</p>
</body>
</html>
- HTTP/1.1 200 OK
- 요청이 성공적으로 처리되었음을 나타내는 상태 코드와 메시지
- Content-Type: text/html; charset=UTF-8
- 응답 콘텐츠의 타입과 문자 인코딩 방식을 지정합니다. 이 경우 HTML 텍스트이며 UTF-8을 사용합니다.
- Content-Length: 12345
- 응답 본문(content)의 바이트 크기를 나타냅니다. 여기서는 총 12345 바이트의 데이터가 포함되어 있습니다.
- Date: Tue, 22 Jan 2025 12:00:00 GMT
- 응답이 생성된 시간 및 날짜를 나타냅니다.
- Server: Apache/2.4.29 (Unix)
- 서버 소프트웨어의 이름과 버전, 실행 중인 운영 체제를 지정합니다.
- Cache-Control: max-age=3600, must-revalidate
- 캐시 제어 지시사항으로 콘텐츠의 최대 유효 시간이 3600초(1시간)이며, 반드시 재검증이 필요하다는 것을 의미합니다.
- Expires: Tue, 22 Jan 2025 13:00:00 GMT
- 콘텐츠의 만료일시를 나타냅니다. 이 시간 이후에는 콘텐츠가 무효화될 예정입니다.
- Last-Modified: Mon, 21 Jan 2025 18:00:00 GMT
- 콘텐츠가 마지막으로 수정된 날짜와 시간을 나타냅니다.
- ETag: "5d5f-60a68b9e1b38b"
- 리소스를 고유하게 식별하는 고유 태그입니다. 콘텐츠의 버전 관리를 위해 사용됩니다.
- Connection: keep-alive
- 클라이언트와 서버 간의 연결이 유지되도록 설정합니다.
- Set-Cookie: sessionid=abcd1234; Path=/; HttpOnly; Secure
- 클라이언트에 세션 쿠키를 설정합니다. 여기서 HttpOnly는 자바스크립트에서 쿠키 접근을 제한하고, Secure는 HTTPS 연결에서만 쿠키가 전송되도록 합니다.
- Vary: Accept-Encoding, User-Agent
- 응답이 클라이언트의 요청에 따라 다르게 제공될 수 있는 부분들을 정의합니다. 예를 들어, 압축 여부나 사용자 에이전트에 따라 결과가 달라질 수 있습니다.
- Content-Encoding: gzip
- 응답 본문을 압축하는 방법으로 gzip이 사용되었음을 나타냅니다.
- Access-Control-Allow-Origin: *
- CORS 설정으로, 어떤 출처(origin)에서든 요청이 허용됨을 설정합니다.
- Access-Control-Allow-Methods
- 지원되는 HTTP 메서드(요청 방식)을 설정합니다. 예: GET, POST, OPTIONS
- Access-Control-Allow-Headers
- CORS 요청 시 허용되는 헤더 목록을 설정합니다. 예: Content-Type, Authorization
2-1.바디
<!DOCTYPE html>
<html>
<head>
<title>Example Page</title>
</head>
<body>
<h1>Welcome to My Website</h1>
<p>This is a sample HTML page.</p>
</body>
</html>
'Computer Science > Server&Network' 카테고리의 다른 글
[Server] WS(Web Server) vs WAS(Web Application Server) (0) | 2025.01.18 |
---|---|
[Server] Nginx란 (1) | 2025.01.18 |
[Server] P2P(Peer-to-Peer) (0) | 2025.01.16 |