TIL #7 [CS] WEB HTTP

eunseo·2021년 8월 18일
0

TIL

목록 보기
7/9
post-thumbnail

HTTP

  • 서버와 클라이언트 간에 데이터가 교환되는 방식
  • 요청(request)은 클라이언트가 서버로 전달해서 서버의 액션이 일어나게끔 하는 메시지
  • 응답(response)은 요청에 대한 서버의 답변입니다.

요청(request) 헤더

http://127.0.0.1/
먼저 쉬운 이해를 위해 127.0.0.1에 접속한다.

GET 방식(데이터를 가져올 때 사용)이며 웹브라우저가 사용하는 통신방법은 HTTP 1.1이다.

Host : 웹 브라우저가 127.0.0.1 접속했다는 것을 알려준다.

Connection : keep-alive면, 연결은 지속되고 끊기지 않으며, 동일한 서버에 대한 후속 요청을 수행할 수 있다는 것을 의미한다.

User-Agent : 웹브라우저의 다른 표현이다. ()안을 보면 사용하고 있는 운영체제에 대한 정보이다.
ex) 로봇이 접근할 때 이 User-Agent를 보고 그 요청을 차단할 수 있다.

Accept-Encoding :이 웹 브라우저는 gzip,deflate, br 압축 방식을 지원한다는 뜻이다.

If-Modified-Since : 이 파일을 마지막으로 다운로드 받은 시각이다. 웹 서버가 응답을 해줄 때 이것보다 최신이 아니면 보내주지 않아도 되는 것을 의미한다.

요청(request) 바디

모든 요청에 본문이 들어가지는 않는다. GET 처럼 리소스를 가져오는 요청은 보통 본문이 필요가 없다. POST 처럼 서버에 데이터를 전송할 때는 본문이 필요하다
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#multipartform-data

응답(response) 헤더


phrase는 응답 결과를 사람이 이해하기 쉽도록 말로 풀어쓴 것이다.

웹서버는 HTTP 1.1로 통신하며, 200은 성공적으로 데이터를 찾아서 보내준다는 의미이다.

Content-Encoding : 이 컨텐츠는 gzip 방식으로 압축함을 의미한다.

Content-Length : 이 컨텐츠의 길이가 전체 길이가 1289byte라는 의미이다.

keep-Alive : 연결에 대한 타임아웃과 요청 최대 개수에 대한 정보이다. 타임아웃은 5초이며, 요청은 100개 까지 할 수 있다.

Content-Type: 웹 서버가 웹 브라우저한테 응답하는 정보가 text이고 text중 html이다라는 것을 알려준다.

Last - modified : 이 정보는 마지막으로 언제 수정됬는지를 보여줌.

Body

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Bitnami: Open Source. Simplified</title>
<link href="bitnami.css" media="all" rel="Stylesheet" type="text/css" />
</head>
<body>
<div id="container">

실습
DNS -> IP 주소 얻기
nslookup programmers.co.kr

프로그래머스와 연결 (텔넷 혹은 ssl)

요청

postman 보다는 curl 써보기..!
https://kitae0522.tistory.com/entry/Windows-%EC%9C%88%EB%8F%84%EC%9A%B010%EC%97%90%EC%84%9C-curl-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

참고자료
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
https://gnaseel.tistory.com/23

profile
backend developer

0개의 댓글