goodthings4me.tistory.com
Start Line | Header | [CRLF] Body
■ 요청 메시지 구조
Start Line : HTTP메서드 /요청URL /HTTP버전
Header : Host, User-Agent, Accept, Connection, Content-Type, etc.
Body : 본문 내용(데이터)
예)
GET /test/hellohtml HTTP/1.1
Accept: application/json
Accept-Encoding:
Connection:
Content-Type:
Host:
User-Agent:
■ 응답 메시지 구조
Start Line : HTTP버전 /상태 코드 /상태 텍스트
Header : 요청 메시지 헤더와 유사
Body : 본문 내용(데이터)
예)
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: text/html; charset=utf8
Date:
Server:
■ HTTP 응답 상태코드(100단위 구분)
1xx : Informational (정보 제공)
2xx : Success (성공)
3xx : Redirection (리다이렉션)
4xx : Client Error (클라이언트 에러)
5xx : Server Error (서버 에러)
■ 주요 HTTP 응답 상태코드
상태 코드 | 상태 텍스트 | 비고 |
200 | Success | 요청을 서버에서 정상적으로 처리함 |
201 | Created | 요청 처리되어 새로운 리소스 생성됨 |
202 | Accepted | 요청 접수 완료, 처리는 완료되지 않음 |
301 | Moved Permanently | 지정 리소스가 새 URL로 이동됨 |
303 | See Other | 다른 위치로 요청 |
307 | Temporary Redirect | 임시 리다이렉션 요청 필요 |
400 | Bad Request | 잘못된 요청 구문 |
401 | Unauthorized | 지정 리소스 액세스 권한 없음 |
402 | Forbidden | 지정 리소스 액세스 금지 |
404 | Not Found | 지정 리소스 못찾음 |
500 | Intenal Server Error | 서버 에러 발생 |
503 | Service Unavailable | 서버의 서비스 제공 불가 |
■ HTTPStatus
from http import HTTPStatus
for http in HTTPStatus:
print(http.value, http)
[실행 결과]
100 HTTPStatus.CONTINUE
101 HTTPStatus.SWITCHING_PROTOCOLS
102 HTTPStatus.PROCESSING
200 HTTPStatus.OK
201 HTTPStatus.CREATED
202 HTTPStatus.ACCEPTED
203 HTTPStatus.NON_AUTHORITATIVE_INFORMATION
204 HTTPStatus.NO_CONTENT
205 HTTPStatus.RESET_CONTENT
206 HTTPStatus.PARTIAL_CONTENT
207 HTTPStatus.MULTI_STATUS
208 HTTPStatus.ALREADY_REPORTED
226 HTTPStatus.IM_USED
300 HTTPStatus.MULTIPLE_CHOICES
301 HTTPStatus.MOVED_PERMANENTLY
302 HTTPStatus.FOUND
303 HTTPStatus.SEE_OTHER
304 HTTPStatus.NOT_MODIFIED
305 HTTPStatus.USE_PROXY
307 HTTPStatus.TEMPORARY_REDIRECT
308 HTTPStatus.PERMANENT_REDIRECT
400 HTTPStatus.BAD_REQUEST
401 HTTPStatus.UNAUTHORIZED
402 HTTPStatus.PAYMENT_REQUIRED
403 HTTPStatus.FORBIDDEN
404 HTTPStatus.NOT_FOUND
405 HTTPStatus.METHOD_NOT_ALLOWED
406 HTTPStatus.NOT_ACCEPTABLE
407 HTTPStatus.PROXY_AUTHENTICATION_REQUIRED
408 HTTPStatus.REQUEST_TIMEOUT
409 HTTPStatus.CONFLICT
410 HTTPStatus.GONE
411 HTTPStatus.LENGTH_REQUIRED
412 HTTPStatus.PRECONDITION_FAILED
413 HTTPStatus.REQUEST_ENTITY_TOO_LARGE
414 HTTPStatus.REQUEST_URI_TOO_LONG
415 HTTPStatus.UNSUPPORTED_MEDIA_TYPE
416 HTTPStatus.REQUESTED_RANGE_NOT_SATISFIABLE
417 HTTPStatus.EXPECTATION_FAILED
421 HTTPStatus.MISDIRECTED_REQUEST
422 HTTPStatus.UNPROCESSABLE_ENTITY
423 HTTPStatus.LOCKED
424 HTTPStatus.FAILED_DEPENDENCY
426 HTTPStatus.UPGRADE_REQUIRED
428 HTTPStatus.PRECONDITION_REQUIRED
429 HTTPStatus.TOO_MANY_REQUESTS
431 HTTPStatus.REQUEST_HEADER_FIELDS_TOO_LARGE
451 HTTPStatus.UNAVAILABLE_FOR_LEGAL_REASONS
500 HTTPStatus.INTERNAL_SERVER_ERROR
501 HTTPStatus.NOT_IMPLEMENTED
502 HTTPStatus.BAD_GATEWAY
503 HTTPStatus.SERVICE_UNAVAILABLE
504 HTTPStatus.GATEWAY_TIMEOUT
505 HTTPStatus.HTTP_VERSION_NOT_SUPPORTED
506 HTTPStatus.VARIANT_ALSO_NEGOTIATES
507 HTTPStatus.INSUFFICIENT_STORAGE
508 HTTPStatus.LOOP_DETECTED
510 HTTPStatus.NOT_EXTENDED
511 HTTPStatus.NETWORK_AUTHENTICATION_REQUIRED
'IT(Tip)' 카테고리의 다른 글
파이썬 아나콘다(Anaconda) 업데이트 하기 (0) | 2020.09.07 |
---|---|
[python] 아나콘다(Anaconda) 가상환경 생성, 업데이트, 삭제하기 (0) | 2020.09.01 |
VS Code로 Python 코드 디버깅 시 launch.json (0) | 2020.08.11 |
웹 페이지 꾸미기 - CSS 3 란? 그리고 선택자 정리 (0) | 2020.08.09 |
웹페이지 만드는 언어 HTML 5 정리 #2 (0) | 2020.08.04 |
댓글