- URL : 주소창에 입력되는 전체 문자열
- HostName : URL 구조중 일부 (protocol://hostname[:port]/*.html
- HostName을 IP로 바꿔줌
- Google.co.kr을 예로 들어 설명
- Google.co.kr을 주소창에 입력
- DNS에서 해당 HostName을 IP(google.co.kr -> 173.194.127.56)로 변환
- TCP Connect에 IP와 PortNumber(8080)을 파라미터로 넘겨줌
- TCP Socket으로 요청 (request)
- 해당 서버에서 response를 받아옴
- HTTP Close로 연결 종료
개발자 도구 (단축키 : ctrl + shift + i ) -> Network -> Preserve Log 클릭
페이지별로 어떤 요청과 응답이 주고갔는지 확인이 가능하다.
최상단에 요청메소드 (Get인지, Post인지). 요청 URL(위치), HTTP/1.1
나머지는 헤더의 이름/ : (구분자)/ Value
Response Header
상단부분 HTTP1.1/200/OK (무슨 구조인지는 모르겠다.)
나머지는 Request Header와 동일하다.(헤더의 이름/ : (구분자)/ Value)
Request-line
Request Headers 를 확인했을때 맨 상단에 나오는 라인이다.
Request-line은 Method/URL/Protocol로 구성된다.
예시로 지난번에 Request Header 요청을 확인했을때 Response Header에서 GET/TestProject/FirstTest/HTTP/1.1 이라는 메세지가 왔었다.
이를 해석하면 GET Method가 실행되었으며 URL은 TestProject/FirstTest/이고 HTTP1.1 프로토콜이 사용되었다는 의미이다.
OPTIONS : 요청 URI에서 사용할 수 있는 Method를 물어본다.(스펙 참고)
GET : 요청 URI의 정보를 가져온다.(스펙 참고)
HEAD : GET 요청에서 body는 제외하고 헤더만 가져온다.(스펙 참고)
POST : 요청 URI의 리소스의 새로운 정보를 보낸다.(스펙 참고)
PUT : 요청 URI에 저장될 정보를 보낸다. (스펙 참고)
DELETE : 요청 URI의 리소스를 삭제한다.(스펙 참고)
TRACE : 보낸 메시지를 다시 돌려보낸다. (스펙 참고)
CONNECT : 프록시에 사용하기 위해 예약된 메서드이다.(스펙 참고)
이중 써본 메소드는 get과 post정도이다.
설명으로 보면
GET은 요청 URL의 정보를 가져온다고 되어있다.
우리가 어딘가 URL을 찾아가는 것은 기본적으로 정보를 가져오기 위함인데 GET이 기본으로 설정되어 있는것은 이와 관련이 있는 것 같다.
POST는 요청 자원의 새로운 정보를 보낸다고 되어있는데, 이는 <form>에다가 정보를 입력해서 보내는것과 관련이 있는것 같다.
Response Headers 를 확인했을때 맨 상단에 나오는 라인이다.
Response-line은 Protocol/StatusCode/StatusMessage로 구성된다
예시로 지난번에 Response Headers 요청을 확인했을때 Response Headers에서 HTTP1.1/200/OK 이라는 메세지가 왔었다.
이를 해석하면 HTTP1.1 프로토콜을 사용하고, 상태 코드 및 상태 메세지가 200 OK이므로 클라이언트의 요청이 성공하였고 서버는 요청한 데이터를 포함하여 응답한다는 의미이다.
사용하는 프로토콜이 HTTP1.1 인지 HTTP1.0인지 나타낸다.
Status Code란 뜻 그대로 작업 상태를 코드로 표기하는 것 같다.
3자리 숫자로 되어있고, 1번째 자리는 어떤 응답의 종류인지 (정보, 성공, 방향, 에러(클라이언트), 에러(서버))를 표기
2, 3자리 숫자로 자세한 내역을 표기하는 것 같다.
(아래의 링크를 참조)
상태코드는 서버가 요구 메시지를 수신하여 처리한 결과를 알려주는 세 자리의 정수로 된 처리 결과 번호
첫 번째 자리 숫자는 응답의 종류에 대한 분류 기호이며, 나머지 두 자리 숫자는 일련번호입니다. 현재 첫 번째 자리 숫자에 대해 다섯 가지로 분류하여 쓰고 있다.
Informatinal 1xx
Success 2xx
Redirection 3xx
Client Error 4xx
Server Error 5xx
상태 코드(숫자 형태)를 간략하게 부연 설명해주는 역할인듯 하다. ex ) 요청성공 -> OK
이 링크는 각 종류별 상태와 상태 메세지를 나열해놓은 것이다. 전부 다 외울수는 없으니 필요할 때 찾아보면 좋을 것 같다.
http://www.coolcheck.co.kr/upload/http_scode.asp
아래 블로그에는 정보가 간략히 정리되어 있으니 앞으로도 참고해야겠다.
http://blog.outsider.ne.kr/888 (HTTP 요청/응답 스펙 간략히 이해하기)
[TDD] 시침과 분침 사이 각도 계산 (0) | 2015.12.06 |
---|---|
[TDD] 이진 검색 (0) | 2015.12.06 |
URL 구조 분석 (0) | 2015.12.06 |
Spring 기본 세팅, 기본 출력, doPost, doGet메소드 (0) | 2015.12.01 |
[리팩토링] 레거시 코드 리팩토링 예제 (1) | 2015.12.01 |
댓글 영역