<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>코딩baby의 성장기</title>
    <link>https://love-codingbaby.tistory.com/</link>
    <description>차근차근 성장하고 있는 나!! 칭찬해!!!!!</description>
    <language>ko</language>
    <pubDate>Mon, 25 May 2026 09:58:56 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>정성윤TV</managingEditor>
    <item>
      <title>[Java]정적 펙토리 메서드</title>
      <link>https://love-codingbaby.tistory.com/10</link>
      <description>&lt;h2 data-end=&quot;101&quot; data-start=&quot;84&quot; data-ke-size=&quot;size26&quot;&gt;정적 팩토리 메서드란?&lt;/h2&gt;
&lt;blockquote data-end=&quot;179&quot; data-start=&quot;103&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;179&quot; data-start=&quot;105&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;static&lt;/b&gt; 키워드를 붙여서 만든 &lt;b&gt;객체 생성 전용 메서드이다. (static을 사용하면 객체 없이 바로 사용가능)&lt;/b&gt;&lt;br /&gt;생성자 대신 객체를 만들고 초기값도 넣을 수 있다.&lt;br /&gt;&lt;br /&gt;JPA에서 setter쓰지 않는게 좋다고 했는데 그것을 해결하기 위해 정적팩토리 메서드를 사용한다고 한다.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre id=&quot;code_1744097860419&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class Member {
    private String name;

    // 생성자를 private으로 숨기고
    private Member(String name) {
        this.name = name;
    }

    // 정적 팩토리 메서드
    public static Member of(String name) {
        return new Member(name); // 내부에서 객체 생성 + 값 설정
    }

    public String getName() {
        return name;
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1744098011492&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Member m = Member.of(&quot;홍길동&quot;);
System.out.println(m.getName()); //   홍길동 출력&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 느낌~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;84&quot; data-end=&quot;101&quot; data-ke-size=&quot;size26&quot;&gt;여러개의 값을 넣고싶을 때&lt;/h2&gt;
&lt;pre id=&quot;code_1744098075786&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public class User {
    private String name;
    private int age;

    private User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public static User of(String name, int age) {
        return new User(name, age); // 내부에서 필드에 다 넣어줌
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1744098119177&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;User user = User.of(&quot;철수&quot;, 25);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;장점&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불변객체를 만들기 쉽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;new 키워드 안 써도 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리턴 타입을 자유롭게 바꿀 수 있음&lt;/p&gt;</description>
      <author>정성윤TV</author>
      <guid isPermaLink="true">https://love-codingbaby.tistory.com/10</guid>
      <comments>https://love-codingbaby.tistory.com/10#entry10comment</comments>
      <pubDate>Tue, 8 Apr 2025 16:45:50 +0900</pubDate>
    </item>
    <item>
      <title>[네트워크] HTTP 헤더와 쿠키</title>
      <link>https://love-codingbaby.tistory.com/9</link>
      <description>&lt;h1 data-end=&quot;107&quot; data-start=&quot;89&quot;&gt;1. HTTP 헤더와 쿠키&lt;/h1&gt;
&lt;p data-end=&quot;139&quot; data-start=&quot;108&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;255&quot; data-start=&quot;141&quot; data-ke-size=&quot;size16&quot;&gt;HTTP 통신에서 헤더(Header)는 클라이언트와 서버가 주고받는 &lt;b&gt;부가 정보&lt;/b&gt;를 담고 있으며,&lt;br /&gt;쿠키(Cookie)는 클라이언트 측에 &lt;b&gt;상태 정보&lt;/b&gt;를 저장하는 대표적인 방식이다.&lt;/p&gt;
&lt;h2 data-end=&quot;279&quot; data-start=&quot;262&quot; data-ke-size=&quot;size26&quot;&gt;1-1. HTTP 헤더란?&lt;/h2&gt;
&lt;p data-end=&quot;360&quot; data-start=&quot;281&quot; data-ke-size=&quot;size16&quot;&gt;HTTP 메시지에서 &lt;b&gt;요청 또는 응답에 포함되는 메타데이터&lt;/b&gt;이다.&lt;br /&gt;브라우저 정보, 인증 정보, 콘텐츠 타입 등 다양한 정보를 전달한다.&lt;/p&gt;
&lt;p data-end=&quot;360&quot; data-start=&quot;281&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;360&quot; data-start=&quot;281&quot; data-ke-size=&quot;size16&quot;&gt;ex) 예)&amp;nbsp;메시지&amp;nbsp;바디의&amp;nbsp;내용,&amp;nbsp;메시지&amp;nbsp;바디의&amp;nbsp;크기,&amp;nbsp;압축,&amp;nbsp;인증,&amp;nbsp;요청&amp;nbsp;클라이언트,&amp;nbsp;서버&amp;nbsp;정보,&amp;nbsp;캐 &lt;br /&gt;시 관리 정보 등등&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpRsVx/btsM1nVi6m5/iNok1DdyAm54CfsByzVnHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpRsVx/btsM1nVi6m5/iNok1DdyAm54CfsByzVnHK/img.png&quot; data-alt=&quot;헤더 부분&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpRsVx/btsM1nVi6m5/iNok1DdyAm54CfsByzVnHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpRsVx%2FbtsM1nVi6m5%2FiNok1DdyAm54CfsByzVnHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;223&quot; data-origin-width=&quot;563&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;헤더 부분&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;396&quot; data-start=&quot;367&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-end=&quot;396&quot; data-start=&quot;367&quot; data-ke-size=&quot;size23&quot;&gt;1) 요청 헤더 (Request Header)&lt;/h3&gt;
&lt;p data-end=&quot;425&quot; data-start=&quot;398&quot; data-ke-size=&quot;size16&quot;&gt;클라이언트가 서버에 요청할 때 함께 전송하는 정보&lt;/p&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;788&quot; data-start=&quot;427&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;788&quot; data-start=&quot;475&quot;&gt;
&lt;tr data-end=&quot;525&quot; data-start=&quot;475&quot;&gt;
&lt;td&gt;Host&lt;/td&gt;
&lt;td&gt;요청 대상 서버의 도메인&lt;/td&gt;
&lt;td&gt;Host: www.example.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;585&quot; data-start=&quot;526&quot;&gt;
&lt;td&gt;User-Agent&lt;/td&gt;
&lt;td&gt;브라우저 및 운영체제 정보&lt;/td&gt;
&lt;td&gt;User-Agent: Mozilla/5.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;641&quot; data-start=&quot;586&quot;&gt;
&lt;td&gt;Accept&lt;/td&gt;
&lt;td&gt;클라이언트가 수용 가능한 데이터 형식&lt;/td&gt;
&lt;td&gt;Accept: text/html&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;700&quot; data-start=&quot;642&quot;&gt;
&lt;td&gt;Cookie&lt;/td&gt;
&lt;td&gt;클라이언트가 보유한 쿠키 전송&lt;/td&gt;
&lt;td&gt;Cookie: sessionId=abc123&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;788&quot; data-start=&quot;701&quot;&gt;
&lt;td&gt;Content-Type&lt;/td&gt;
&lt;td&gt;요청 데이터의 형식&lt;/td&gt;
&lt;td&gt;application/json, application/x-www-form-urlencoded&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;825&quot; data-start=&quot;795&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-end=&quot;825&quot; data-start=&quot;795&quot; data-ke-size=&quot;size23&quot;&gt;2) 응답 헤더 (Response Header)&lt;/h3&gt;
&lt;p data-end=&quot;855&quot; data-start=&quot;827&quot; data-ke-size=&quot;size16&quot;&gt;서버가 클라이언트에게 응답할 때 함께 전달하는 정보&lt;/p&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1216&quot; data-start=&quot;857&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1216&quot; data-start=&quot;905&quot;&gt;
&lt;tr data-end=&quot;967&quot; data-start=&quot;905&quot;&gt;
&lt;td&gt;Content-Type&lt;/td&gt;
&lt;td&gt;응답 데이터의 MIME 타입&lt;/td&gt;
&lt;td&gt;Content-Type: text/html&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1030&quot; data-start=&quot;968&quot;&gt;
&lt;td&gt;Content-Length&lt;/td&gt;
&lt;td&gt;응답 바디의 길이 (byte)&lt;/td&gt;
&lt;td&gt;Content-Length: 1024&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1114&quot; data-start=&quot;1031&quot;&gt;
&lt;td&gt;Set-Cookie&lt;/td&gt;
&lt;td&gt;클라이언트에 쿠키 설정 지시&lt;/td&gt;
&lt;td&gt;Set-Cookie: sessionId=abc123; Path=/; HttpOnly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1171&quot; data-start=&quot;1115&quot;&gt;
&lt;td&gt;Cache-Control&lt;/td&gt;
&lt;td&gt;캐싱 정책 설정&lt;/td&gt;
&lt;td&gt;Cache-Control: no-cache&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1216&quot; data-start=&quot;1172&quot;&gt;
&lt;td&gt;Location&lt;/td&gt;
&lt;td&gt;리다이렉트 위치&lt;/td&gt;
&lt;td&gt;Location: /login&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dAKKYg/btsM2F1JU8O/dkeLS8RKkRwjWRMti32lr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dAKKYg/btsM2F1JU8O/dkeLS8RKkRwjWRMti32lr0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dAKKYg/btsM2F1JU8O/dkeLS8RKkRwjWRMti32lr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdAKKYg%2FbtsM2F1JU8O%2FdkeLS8RKkRwjWRMti32lr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;289&quot; data-origin-width=&quot;568&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y1lI5/btsM0wSJqJj/boPImPFIcjIk0iLaAmd8Sk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y1lI5/btsM0wSJqJj/boPImPFIcjIk0iLaAmd8Sk/img.png&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;250&quot; data-is-animation=&quot;false&quot; width=&quot;401&quot; height=&quot;176&quot; style=&quot;width: 55.2674%; margin-right: 10px;&quot; data-widthpercent=&quot;55.92&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y1lI5/btsM0wSJqJj/boPImPFIcjIk0iLaAmd8Sk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy1lI5%2FbtsM0wSJqJj%2FboPImPFIcjIk0iLaAmd8Sk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;570&quot; height=&quot;250&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HrDDI/btsM0426rEm/Y0zYh2ZvFpr3kWHvaEUnp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HrDDI/btsM0426rEm/Y0zYh2ZvFpr3kWHvaEUnp0/img.png&quot; data-origin-width=&quot;559&quot; data-origin-height=&quot;311&quot; data-is-animation=&quot;false&quot; width=&quot;334&quot; height=&quot;186&quot; style=&quot;width: 43.5698%;&quot; data-widthpercent=&quot;44.08&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HrDDI/btsM0426rEm/Y0zYh2ZvFpr3kWHvaEUnp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHrDDI%2FbtsM0426rEm%2FY0zYh2ZvFpr3kWHvaEUnp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;559&quot; height=&quot;311&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dOXhIK/btsM1PD0blK/Yxhoe1buMLlv2ONKQXMaz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dOXhIK/btsM1PD0blK/Yxhoe1buMLlv2ONKQXMaz0/img.png&quot; data-origin-width=&quot;526&quot; data-origin-height=&quot;253&quot; data-is-animation=&quot;false&quot; width=&quot;345&quot; height=&quot;166&quot; style=&quot;width: 42.6206%; margin-right: 10px;&quot; data-widthpercent=&quot;43.12&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dOXhIK/btsM1PD0blK/Yxhoe1buMLlv2ONKQXMaz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdOXhIK%2FbtsM1PD0blK%2FYxhoe1buMLlv2ONKQXMaz0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;526&quot; height=&quot;253&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4kcLa/btsM2oFTvVZ/hz8B3dHoiVYYNupfMJPDP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4kcLa/btsM2oFTvVZ/hz8B3dHoiVYYNupfMJPDP0/img.png&quot; data-origin-width=&quot;532&quot; data-origin-height=&quot;194&quot; data-is-animation=&quot;false&quot; width=&quot;406&quot; height=&quot;148&quot; style=&quot;width: 56.2166%;&quot; data-widthpercent=&quot;56.88&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4kcLa/btsM2oFTvVZ/hz8B3dHoiVYYNupfMJPDP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4kcLa%2FbtsM2oFTvVZ%2Fhz8B3dHoiVYYNupfMJPDP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;532&quot; height=&quot;194&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;1241&quot; data-start=&quot;1223&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-end=&quot;1241&quot; data-start=&quot;1223&quot; data-ke-size=&quot;size26&quot;&gt;1-2. 쿠키(Cookie)&lt;/h2&gt;
&lt;p data-end=&quot;1367&quot; data-start=&quot;1243&quot; data-ke-size=&quot;size16&quot;&gt;쿠키는 &lt;b&gt;클라이언트(브라우저)에 저장되는 소량의 데이터&lt;/b&gt;이다.&lt;br /&gt;서버가 클라이언트에게 &lt;b&gt;Set-Cookie&lt;/b&gt; 헤더로 쿠키를 설정하면,&lt;br /&gt;이후 요청마다 클라이언트가 &lt;b&gt;Cookie 헤더&lt;/b&gt;로 서버에 다시 전달한다.&lt;/p&gt;
&lt;h3 data-end=&quot;1387&quot; data-start=&quot;1374&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-end=&quot;1387&quot; data-start=&quot;1374&quot; data-ke-size=&quot;size23&quot;&gt;1) 쿠키의 구조&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull;&amp;nbsp;Set-Cookie:&amp;nbsp;서버에서&amp;nbsp;클라이언트로&amp;nbsp;쿠키&amp;nbsp;전달(응답) &lt;br /&gt;&amp;bull;&amp;nbsp;Cookie:&amp;nbsp;클라이언트가&amp;nbsp;서버에서&amp;nbsp;받은&amp;nbsp;쿠키를&amp;nbsp;저장하고,&amp;nbsp;HTTP&amp;nbsp;요청시&amp;nbsp;서버로&amp;nbsp;전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; ex) set-cookie: &lt;b&gt;sessionId=abcde1234;&lt;/b&gt; expires=Sat, 26-Dec-2020 00:00:00 GMT; &lt;b&gt;path=/; domain&lt;/b&gt;=.google.com; &lt;b&gt;Secur&lt;/b&gt;&lt;/p&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1797&quot; data-start=&quot;1440&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1797&quot; data-start=&quot;1480&quot;&gt;
&lt;tr data-end=&quot;1526&quot; data-start=&quot;1480&quot;&gt;
&lt;td&gt;name=value&lt;/td&gt;
&lt;td&gt;쿠키 이름과 값&lt;/td&gt;
&lt;td&gt;sessionId=xyz789&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1565&quot; data-start=&quot;1527&quot;&gt;
&lt;td&gt;Path&lt;/td&gt;
&lt;td&gt;전송될 URL 경로&lt;/td&gt;
&lt;td&gt;Path=/mypage&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1614&quot; data-start=&quot;1566&quot;&gt;
&lt;td&gt;Max-Age&lt;/td&gt;
&lt;td&gt;쿠키 유효 시간(초)&lt;/td&gt;
&lt;td&gt;Max-Age=3600 (1시간)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1676&quot; data-start=&quot;1615&quot;&gt;
&lt;td&gt;Expires&lt;/td&gt;
&lt;td&gt;만료 날짜&lt;/td&gt;
&lt;td&gt;Expires=Wed, 21 Oct 2025 07:28:00 GMT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1717&quot; data-start=&quot;1677&quot;&gt;
&lt;td&gt;Domain&lt;/td&gt;
&lt;td&gt;적용할 도메인 범위&lt;/td&gt;
&lt;td&gt;.example.com&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1756&quot; data-start=&quot;1718&quot;&gt;
&lt;td&gt;Secure&lt;/td&gt;
&lt;td&gt;HTTPS 연결에서만 전송&lt;/td&gt;
&lt;td&gt;Secure&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1797&quot; data-start=&quot;1757&quot;&gt;
&lt;td&gt;HttpOnly&lt;/td&gt;
&lt;td&gt;자바스크립트 접근 금지&lt;/td&gt;
&lt;td&gt;HttpOnly&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;443&quot; data-origin-height=&quot;218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mPrZf/btsM2vEOBdz/i9knJEk4B9YkaFNrQAZLSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mPrZf/btsM2vEOBdz/i9knJEk4B9YkaFNrQAZLSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mPrZf/btsM2vEOBdz/i9knJEk4B9YkaFNrQAZLSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmPrZf%2FbtsM2vEOBdz%2Fi9knJEk4B9YkaFNrQAZLSK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;443&quot; height=&quot;218&quot; data-origin-width=&quot;443&quot; data-origin-height=&quot;218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1819&quot; data-start=&quot;1804&quot; data-ke-size=&quot;size23&quot;&gt;2) 쿠키 동작 예시&lt;/h3&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HCYnS/btsM115gXL8/Ht5kjxEoHWVXBPzUy3s2dK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HCYnS/btsM115gXL8/Ht5kjxEoHWVXBPzUy3s2dK/img.png&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;300&quot; data-is-animation=&quot;false&quot; width=&quot;331&quot; height=&quot;190&quot; style=&quot;width: 48.2156%; margin-right: 10px;&quot; data-widthpercent=&quot;48.78&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HCYnS/btsM115gXL8/Ht5kjxEoHWVXBPzUy3s2dK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHCYnS%2FbtsM115gXL8%2FHt5kjxEoHWVXBPzUy3s2dK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;523&quot; height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzxME6/btsM3kW558i/uGNkmCar86Lsj6uaYDIN2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzxME6/btsM3kW558i/uGNkmCar86Lsj6uaYDIN2K/img.png&quot; data-origin-width=&quot;507&quot; data-origin-height=&quot;277&quot; data-is-animation=&quot;false&quot; width=&quot;298&quot; height=&quot;163&quot; style=&quot;width: 50.6216%;&quot; data-widthpercent=&quot;51.22&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzxME6/btsM3kW558i/uGNkmCar86Lsj6uaYDIN2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzxME6%2FbtsM3kW558i%2FuGNkmCar86Lsj6uaYDIN2K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;507&quot; height=&quot;277&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;쿠키 로그인 &lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;1804&quot; data-end=&quot;1819&quot; data-ke-size=&quot;size23&quot;&gt;3) 쿠키 생명주기, 도메인, 경로, 보안&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0IUni/btsM14t9Kkd/zCVxcShA0eaRx5vOK3rrKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0IUni/btsM14t9Kkd/zCVxcShA0eaRx5vOK3rrKk/img.png&quot; data-origin-width=&quot;416&quot; data-origin-height=&quot;291&quot; data-is-animation=&quot;false&quot; style=&quot;width: 56.9307%; margin-right: 10px;&quot; data-widthpercent=&quot;57.6&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0IUni/btsM14t9Kkd/zCVxcShA0eaRx5vOK3rrKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0IUni%2FbtsM14t9Kkd%2FzCVxcShA0eaRx5vOK3rrKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;291&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dl6ul/btsMZ2YHozD/hHX2bn3qKv0IXg0XlHEoS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dl6ul/btsMZ2YHozD/hHX2bn3qKv0IXg0XlHEoS1/img.png&quot; data-origin-width=&quot;322&quot; data-origin-height=&quot;306&quot; data-is-animation=&quot;false&quot; style=&quot;width: 41.9065%;&quot; data-widthpercent=&quot;42.4&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dl6ul/btsMZ2YHozD/hHX2bn3qKv0IXg0XlHEoS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDl6ul%2FbtsMZ2YHozD%2FhHX2bn3qKv0IXg0XlHEoS1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;322&quot; height=&quot;306&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xj1Du/btsM3pD5nBb/pplshiAX8dvRNr24aC5FUK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xj1Du/btsM3pD5nBb/pplshiAX8dvRNr24aC5FUK/img.png&quot; data-origin-width=&quot;265&quot; data-origin-height=&quot;319&quot; data-is-animation=&quot;false&quot; style=&quot;width: 42.1738%; margin-right: 10px;&quot; data-widthpercent=&quot;42.67&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xj1Du/btsM3pD5nBb/pplshiAX8dvRNr24aC5FUK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxj1Du%2FbtsM3pD5nBb%2FpplshiAX8dvRNr24aC5FUK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;265&quot; height=&quot;319&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yDjKi/btsM0wSJwiG/yIuzVvsDPCtgNvV71jkIl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yDjKi/btsM0wSJwiG/yIuzVvsDPCtgNvV71jkIl0/img.png&quot; data-origin-width=&quot;346&quot; data-origin-height=&quot;310&quot; data-is-animation=&quot;false&quot; style=&quot;width: 56.6634%;&quot; data-widthpercent=&quot;57.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yDjKi/btsM0wSJwiG/yIuzVvsDPCtgNvV71jkIl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyDjKi%2FbtsM0wSJwiG%2FyIuzVvsDPCtgNvV71jkIl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;346&quot; height=&quot;310&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;1986&quot; data-start=&quot;1966&quot; data-ke-size=&quot;size26&quot;&gt;1-3. 쿠키의 주요 활용 목적&lt;/h2&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;2109&quot; data-start=&quot;1988&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;2109&quot; data-start=&quot;2016&quot;&gt;
&lt;tr data-end=&quot;2044&quot; data-start=&quot;2016&quot;&gt;
&lt;td&gt;세션 관리&lt;/td&gt;
&lt;td&gt;로그인 상태 유지, 인증 처리&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;2074&quot; data-start=&quot;2045&quot;&gt;
&lt;td&gt;개인화&lt;/td&gt;
&lt;td&gt;사용자 설정(언어, 테마 등) 저장&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;2109&quot; data-start=&quot;2075&quot;&gt;
&lt;td&gt;트래킹&lt;/td&gt;
&lt;td&gt;사용자 행동 분석, 광고 목적 (주의 필요)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 data-end=&quot;2139&quot; data-start=&quot;2116&quot; data-ke-size=&quot;size26&quot;&gt;1-4. 쿠키의 보안 관련 속성 요약&lt;/h2&gt;
&lt;div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;2305&quot; data-start=&quot;2141&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;2305&quot; data-start=&quot;2169&quot;&gt;
&lt;tr data-end=&quot;2208&quot; data-start=&quot;2169&quot;&gt;
&lt;td&gt;Secure&lt;/td&gt;
&lt;td&gt;HTTPS 연결에서만 전송 (중간자 공격 방지)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;2244&quot; data-start=&quot;2209&quot;&gt;
&lt;td&gt;HttpOnly&lt;/td&gt;
&lt;td&gt;JS 접근 차단 (XSS 공격 방지)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;2305&quot; data-start=&quot;2245&quot;&gt;
&lt;td&gt;SameSite&lt;/td&gt;
&lt;td&gt;사이트 간 요청 시 쿠키 전송 제한 (Lax, Strict, None)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;2326&quot; data-start=&quot;2312&quot; data-ke-size=&quot;size26&quot;&gt;1-5. 쿠키의 한계&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2447&quot; data-start=&quot;2328&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2371&quot; data-start=&quot;2328&quot;&gt;&lt;b&gt;저장 용량 제한&lt;/b&gt;: 쿠키 1개당 약 4KB, 도메인당 총 20개 내외&lt;/li&gt;
&lt;li data-end=&quot;2401&quot; data-start=&quot;2372&quot;&gt;&lt;b&gt;클라이언트 저장&lt;/b&gt;: 사용자가 직접 삭제 가능&lt;/li&gt;
&lt;li data-end=&quot;2447&quot; data-start=&quot;2402&quot;&gt;&lt;b&gt;보안 이슈&lt;/b&gt;: 민감한 정보는 절대 저장 금지 (예: 비밀번호, 카드번호)&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>정성윤TV</author>
      <guid isPermaLink="true">https://love-codingbaby.tistory.com/9</guid>
      <comments>https://love-codingbaby.tistory.com/9#entry9comment</comments>
      <pubDate>Sun, 30 Mar 2025 16:43:26 +0900</pubDate>
    </item>
    <item>
      <title>[네트워크] HTTP 상태코드</title>
      <link>https://love-codingbaby.tistory.com/8</link>
      <description>&lt;h1 data-end=&quot;140&quot; data-start=&quot;123&quot;&gt;1. HTTP 상태 코드&lt;/h1&gt;
&lt;p data-end=&quot;260&quot; data-start=&quot;174&quot; data-ke-size=&quot;size16&quot;&gt;서버는 클라이언트의 요청을 처리한 후, 그 결과를 &lt;b&gt;숫자 코드&lt;/b&gt;로 알려준다.&lt;br /&gt;이 숫자가 바로 HTTP 상태 코드(Status Code)이다.&lt;/p&gt;
&lt;p data-end=&quot;319&quot; data-start=&quot;262&quot; data-ke-size=&quot;size16&quot;&gt;상태 코드는 &lt;b&gt;세 자리 숫자&lt;/b&gt;로 구성되며, &lt;b&gt;첫 번째 숫자&lt;/b&gt;에 따라 응답의 성격이 분류된다.&lt;/p&gt;
&lt;h2 data-end=&quot;345&quot; data-start=&quot;326&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-end=&quot;345&quot; data-start=&quot;326&quot; data-ke-size=&quot;size26&quot;&gt;1-1. 상태 코드 분류 요약&lt;/h2&gt;
&lt;div&gt;범위분류명의미
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;634&quot; data-start=&quot;347&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;634&quot; data-start=&quot;390&quot;&gt;
&lt;tr data-end=&quot;438&quot; data-start=&quot;390&quot;&gt;
&lt;td&gt;1xx&lt;/td&gt;
&lt;td&gt;정보(Informational)&lt;/td&gt;
&lt;td&gt;요청을 받았으며, 계속 처리 중&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;477&quot; data-start=&quot;439&quot;&gt;
&lt;td&gt;2xx&lt;/td&gt;
&lt;td&gt;성공(Success)&lt;/td&gt;
&lt;td&gt;요청이 정상적으로 처리됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;532&quot; data-start=&quot;478&quot;&gt;
&lt;td&gt;3xx&lt;/td&gt;
&lt;td&gt;리다이렉션(Redirection)&lt;/td&gt;
&lt;td&gt;추가 작업 필요 (다른 위치로 이동 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;582&quot; data-start=&quot;533&quot;&gt;
&lt;td&gt;4xx&lt;/td&gt;
&lt;td&gt;클라이언트 오류(Client Error)&lt;/td&gt;
&lt;td&gt;클라이언트의 잘못된 요청&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;634&quot; data-start=&quot;583&quot;&gt;
&lt;td&gt;5xx&lt;/td&gt;
&lt;td&gt;서버 오류(Server Error)&lt;/td&gt;
&lt;td&gt;서버 측의 문제로 요청 처리 실패&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;660&quot; data-start=&quot;641&quot; data-ke-size=&quot;size26&quot;&gt;1-2. 1xx (정보 응답)&lt;/h2&gt;
&lt;div&gt;지금은 사용을 거의 안 한다고 함.&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;754&quot; data-start=&quot;662&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;754&quot; data-start=&quot;702&quot;&gt;
&lt;tr data-end=&quot;754&quot; data-start=&quot;702&quot;&gt;
&lt;td&gt;100 Continue&lt;/td&gt;
&lt;td&gt;계속 진행하라는 의미&lt;/td&gt;
&lt;td&gt;클라이언트가 요청을 계속 보내도 됨&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;780&quot; data-start=&quot;761&quot; data-ke-size=&quot;size26&quot;&gt;1-3. 2xx (성공 응답)&lt;/h2&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;954&quot; data-start=&quot;782&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;954&quot; data-start=&quot;822&quot;&gt;
&lt;tr data-end=&quot;853&quot; data-start=&quot;822&quot;&gt;
&lt;td&gt;200 OK&lt;/td&gt;
&lt;td&gt;성공&lt;/td&gt;
&lt;td&gt;요청이 성공적으로 처리됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;901&quot; data-start=&quot;854&quot;&gt;
&lt;td&gt;201 Created&lt;/td&gt;
&lt;td&gt;생성됨&lt;/td&gt;
&lt;td&gt;POST 요청 등으로 리소스가 새로 생성됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;954&quot; data-start=&quot;902&quot;&gt;
&lt;td&gt;204 No Content&lt;/td&gt;
&lt;td&gt;내용 없음&lt;/td&gt;
&lt;td&gt;응답 바디 없이 성공 (삭제 등에서 사용)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FS26P/btsM1QCXPjt/z5PYkeCGxKREOGqGE7aXY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FS26P/btsM1QCXPjt/z5PYkeCGxKREOGqGE7aXY0/img.png&quot; data-origin-width=&quot;650&quot; data-origin-height=&quot;364&quot; data-is-animation=&quot;false&quot; width=&quot;368&quot; height=&quot;206&quot; style=&quot;width: 45.8867%; margin-right: 10px;&quot; data-widthpercent=&quot;46.43&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FS26P/btsM1QCXPjt/z5PYkeCGxKREOGqGE7aXY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFS26P%2FbtsM1QCXPjt%2Fz5PYkeCGxKREOGqGE7aXY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;650&quot; height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dMiTkM/btsM19vcg2c/sfnEJOlo0Oy3W6p3a2S8KK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dMiTkM/btsM19vcg2c/sfnEJOlo0Oy3W6p3a2S8KK/img.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;363&quot; data-is-animation=&quot;false&quot; width=&quot;402&quot; height=&quot;195&quot; style=&quot;width: 52.9505%;&quot; data-widthpercent=&quot;53.57&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dMiTkM/btsM19vcg2c/sfnEJOlo0Oy3W6p3a2S8KK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdMiTkM%2FbtsM19vcg2c%2FsfnEJOlo0Oy3W6p3a2S8KK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;748&quot; height=&quot;363&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;980&quot; data-start=&quot;961&quot; data-ke-size=&quot;size26&quot;&gt;1-4. 3xx (리다이렉션)&lt;/h2&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;영구&amp;nbsp;리다이렉션&amp;nbsp;-&amp;nbsp;특정&amp;nbsp;리소스의&amp;nbsp;URI가&amp;nbsp;영구적으로&amp;nbsp;이동&lt;/b&gt; &lt;br /&gt;&amp;bull;&amp;nbsp;예)&amp;nbsp;/members&amp;nbsp;-&amp;gt;&amp;nbsp;/users &lt;br /&gt;&amp;bull;&amp;nbsp;예)&amp;nbsp;/event&amp;nbsp;-&amp;gt;&amp;nbsp;/new-event &lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;일시 리다이렉션 - 일시적인 변경&lt;/b&gt; &lt;br /&gt;&amp;bull;&amp;nbsp;주문&amp;nbsp;완료&amp;nbsp;후&amp;nbsp;주문&amp;nbsp;내역&amp;nbsp;화면으로&amp;nbsp;이동 &lt;br /&gt;&amp;bull;&amp;nbsp;PRG:&amp;nbsp;Post/Redirect/Ge&lt;/h4&gt;
&lt;div&gt;웹&amp;nbsp;브라우저는&amp;nbsp;3xx&amp;nbsp;응답의&amp;nbsp;결과에&amp;nbsp;Location&amp;nbsp;헤더가&amp;nbsp;있으면,&amp;nbsp;Location&amp;nbsp;위치로&amp;nbsp;자동&amp;nbsp;이동 &lt;br /&gt;(리다이렉트)&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1201&quot; data-start=&quot;982&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1201&quot; data-start=&quot;1022&quot;&gt;
&lt;tr data-end=&quot;1082&quot; data-start=&quot;1022&quot;&gt;
&lt;td&gt;301 Moved Permanently&lt;/td&gt;
&lt;td&gt;영구 이동&lt;/td&gt;
&lt;td&gt;요청한 자원이 &lt;b&gt;새 위치로 영구 이동&lt;/b&gt;됨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1140&quot; data-start=&quot;1083&quot;&gt;
&lt;td&gt;302 Found&lt;/td&gt;
&lt;td&gt;임시 이동&lt;/td&gt;
&lt;td&gt;자원이 &lt;b&gt;임시로 다른 위치로 이동&lt;/b&gt;됨 (원래 위치 유지)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1201&quot; data-start=&quot;1141&quot;&gt;
&lt;td&gt;304 Not Modified&lt;/td&gt;
&lt;td&gt;변경 없음&lt;/td&gt;
&lt;td&gt;&lt;b&gt;캐시된 자원&lt;/b&gt; 사용 가능, 서버 자원 변경 없음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;410&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cd3LoM/btsMZ43d4cQ/0yyAE3wxxQRe7zU71nnbpk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cd3LoM/btsMZ43d4cQ/0yyAE3wxxQRe7zU71nnbpk/img.png&quot; data-alt=&quot;영구 리다이렉션&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cd3LoM/btsMZ43d4cQ/0yyAE3wxxQRe7zU71nnbpk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcd3LoM%2FbtsMZ43d4cQ%2F0yyAE3wxxQRe7zU71nnbpk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;478&quot; height=&quot;310&quot; data-origin-width=&quot;633&quot; data-origin-height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;영구 리다이렉션&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;961&quot; data-end=&quot;980&quot; data-ke-size=&quot;size26&quot;&gt;- PRG: Post/Redirect/Get&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;POST로&amp;nbsp;주문후에&amp;nbsp;웹&amp;nbsp;브라우저를&amp;nbsp;새로고침하면? &lt;br /&gt;&amp;bull;&amp;nbsp;새로고침은&amp;nbsp;다시&amp;nbsp;요청 &lt;br /&gt;&amp;bull; 중복 주문이 될 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;bull; 그래서 PRG를 사용하면 중복주문X&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Udzh5/btsM2nUx02t/nRztGBKUIEodlYsOaDx8d0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Udzh5/btsM2nUx02t/nRztGBKUIEodlYsOaDx8d0/img.png&quot; data-alt=&quot;일시 리다이렉션&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Udzh5/btsM2nUx02t/nRztGBKUIEodlYsOaDx8d0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUdzh5%2FbtsM2nUx02t%2FnRztGBKUIEodlYsOaDx8d0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;593&quot; height=&quot;346&quot; data-origin-width=&quot;593&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;일시 리다이렉션&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;그래서 뭐써야함?&lt;/b&gt;&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자동 리다이렉션시에 GET으로 변해도 되면 그냥 302를 사용해도 큰 문제 없음.&lt;/p&gt;
&lt;h2 data-end=&quot;1230&quot; data-start=&quot;1208&quot; data-ke-size=&quot;size26&quot;&gt;1-5. 4xx (클라이언트 오류)&lt;/h2&gt;
&lt;div&gt;&lt;br /&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1460&quot; data-start=&quot;1232&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1460&quot; data-start=&quot;1272&quot;&gt;
&lt;tr data-end=&quot;1319&quot; data-start=&quot;1272&quot;&gt;
&lt;td&gt;400 Bad Request&lt;/td&gt;
&lt;td&gt;잘못된 요청&lt;/td&gt;
&lt;td&gt;문법 오류 또는 파라미터 오류&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1368&quot; data-start=&quot;1320&quot;&gt;
&lt;td&gt;401 Unauthorized&lt;/td&gt;
&lt;td&gt;인증 필요&lt;/td&gt;
&lt;td&gt;로그인이 필요함 (인증 안 됨)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1413&quot; data-start=&quot;1369&quot;&gt;
&lt;td&gt;403 Forbidden&lt;/td&gt;
&lt;td&gt;금지됨&lt;/td&gt;
&lt;td&gt;서버가 요청을 거부 (권한 없음)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1460&quot; data-start=&quot;1414&quot;&gt;
&lt;td&gt;404 Not Found&lt;/td&gt;
&lt;td&gt;찾을 수 없음&lt;/td&gt;
&lt;td&gt;요청한 리소스가 존재하지 않음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;1486&quot; data-start=&quot;1467&quot; data-ke-size=&quot;size26&quot;&gt;1-6. 5xx (서버 오류)&lt;/h2&gt;
&lt;div&gt;코드의미설명
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1709&quot; data-start=&quot;1488&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1709&quot; data-start=&quot;1528&quot;&gt;
&lt;tr data-end=&quot;1584&quot; data-start=&quot;1528&quot;&gt;
&lt;td&gt;500 Internal Server Error&lt;/td&gt;
&lt;td&gt;내부 서버 오류&lt;/td&gt;
&lt;td&gt;서버의 예기치 못한 오류&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1643&quot; data-start=&quot;1585&quot;&gt;
&lt;td&gt;502 Bad Gateway&lt;/td&gt;
&lt;td&gt;잘못된 게이트웨이&lt;/td&gt;
&lt;td&gt;게이트웨이/프록시 서버가 잘못된 응답을 수신&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1709&quot; data-start=&quot;1644&quot;&gt;
&lt;td&gt;503 Service Unavailable&lt;/td&gt;
&lt;td&gt;서비스 이용 불가&lt;/td&gt;
&lt;td&gt;서버가 과부하 또는 점검 중으로 응답 불가&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h2 data-end=&quot;1738&quot; data-start=&quot;1716&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-end=&quot;1738&quot; data-start=&quot;1716&quot; data-ke-size=&quot;size26&quot;&gt;1-7. 상태 코드 핵심 요약~~&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1865&quot; data-start=&quot;1740&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1778&quot; data-start=&quot;1740&quot;&gt;&lt;b&gt;2xx&lt;/b&gt;: 요청 성공 &amp;rarr; 클라이언트 입장에서 &quot;정상 처리됨&quot;&lt;/li&gt;
&lt;li data-end=&quot;1822&quot; data-start=&quot;1779&quot;&gt;&lt;b&gt;4xx&lt;/b&gt;: 클라이언트 문제 &amp;rarr; 요청 URL, 파라미터, 인증 등 오류&lt;/li&gt;
&lt;li data-end=&quot;1865&quot; data-start=&quot;1823&quot;&gt;&lt;b&gt;5xx&lt;/b&gt;: 서버 문제 &amp;rarr; 서버 자체에서 오류 발생&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>정성윤TV</author>
      <guid isPermaLink="true">https://love-codingbaby.tistory.com/8</guid>
      <comments>https://love-codingbaby.tistory.com/8#entry8comment</comments>
      <pubDate>Sun, 30 Mar 2025 16:14:17 +0900</pubDate>
    </item>
    <item>
      <title>[네트워크] HTTP 요청 방식 GET, POST, PUT, DELETE</title>
      <link>https://love-codingbaby.tistory.com/7</link>
      <description>&lt;h1 data-end=&quot;149&quot; data-start=&quot;123&quot;&gt;HTTP 요청 방식 (Method)&lt;/h1&gt;
&lt;p data-end=&quot;314&quot; data-start=&quot;183&quot; data-ke-size=&quot;size16&quot;&gt;HTTP는 클라이언트가 서버에 &lt;b&gt;무엇을 요청하는지&lt;/b&gt;를 표현하기 위해 다양한 요청 메서드를 제공한다.&lt;br /&gt;가장 많이 사용되는 메서드는 &lt;b&gt;GET&lt;/b&gt;, &lt;b&gt;POST&lt;/b&gt;, &lt;b&gt;PUT&lt;/b&gt;, &lt;b&gt;DELETE&lt;/b&gt; 등이다.&lt;/p&gt;
&lt;hr data-end=&quot;319&quot; data-start=&quot;316&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;345&quot; data-start=&quot;321&quot; data-ke-size=&quot;size26&quot;&gt;2-1. 주요 HTTP 요청 방식 요약&lt;/h2&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;648&quot; data-start=&quot;347&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;648&quot; data-start=&quot;399&quot;&gt;
&lt;tr data-end=&quot;436&quot; data-start=&quot;399&quot;&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;데이터 조회 (읽기)&lt;/td&gt;
&lt;td&gt;게시글 목록 조회, 검색&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;466&quot; data-start=&quot;437&quot;&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;데이터 생성&lt;/td&gt;
&lt;td&gt;회원가입, 로그인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;501&quot; data-start=&quot;467&quot;&gt;
&lt;td&gt;PUT&lt;/td&gt;
&lt;td&gt;데이터 전체 수정&lt;/td&gt;
&lt;td&gt;게시글 전체 내용 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;536&quot; data-start=&quot;502&quot;&gt;
&lt;td&gt;PATCH&lt;/td&gt;
&lt;td&gt;데이터 일부 수정&lt;/td&gt;
&lt;td&gt;게시글 제목만 수정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;565&quot; data-start=&quot;537&quot;&gt;
&lt;td&gt;DELETE&lt;/td&gt;
&lt;td&gt;데이터 삭제&lt;/td&gt;
&lt;td&gt;게시글 삭제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;611&quot; data-start=&quot;566&quot;&gt;
&lt;td&gt;OPTIONS&lt;/td&gt;
&lt;td&gt;지원하는 메서드 확인&lt;/td&gt;
&lt;td&gt;사전 요청 처리 (CORS 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;648&quot; data-start=&quot;612&quot;&gt;
&lt;td&gt;HEAD&lt;/td&gt;
&lt;td&gt;응답 헤더만 요청&lt;/td&gt;
&lt;td&gt;리소스 존재 여부 확인용&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;653&quot; data-start=&quot;650&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;669&quot; data-start=&quot;655&quot; data-ke-size=&quot;size26&quot;&gt;2-2. GET 방식&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;768&quot; data-start=&quot;680&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;711&quot; data-start=&quot;680&quot;&gt;데이터를 URL 뒤에 붙여서 전송 (쿼리스트링 방식)&lt;/li&gt;
&lt;li data-end=&quot;731&quot; data-start=&quot;712&quot;&gt;주소창에 노출됨 &amp;rarr; 보안에 취약&lt;/li&gt;
&lt;li data-end=&quot;749&quot; data-start=&quot;732&quot;&gt;캐싱 가능 / 즐겨찾기 가능&lt;/li&gt;
&lt;li data-end=&quot;768&quot; data-start=&quot;750&quot;&gt;&lt;b&gt;주로 데이터 조회 용도&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;778&quot; data-start=&quot;770&quot; data-ke-size=&quot;size23&quot;&gt;ex) &lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;GET&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;search&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;?query&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;apple HTTP&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;1.1&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mQ3j0/btsM19hwnsD/YVZSSH941qgcMaGgPzUNtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mQ3j0/btsM19hwnsD/YVZSSH941qgcMaGgPzUNtK/img.png&quot; data-origin-width=&quot;781&quot; data-origin-height=&quot;430&quot; data-is-animation=&quot;false&quot; width=&quot;388&quot; height=&quot;214&quot; data-widthpercent=&quot;50.03&quot; style=&quot;width: 49.4503%; margin-right: 10px;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mQ3j0/btsM19hwnsD/YVZSSH941qgcMaGgPzUNtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmQ3j0%2FbtsM19hwnsD%2FYVZSSH941qgcMaGgPzUNtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;781&quot; height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQRJLH/btsM0ctwsLH/KvL5VikdXhQHIkSivmOYr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQRJLH/btsM0ctwsLH/KvL5VikdXhQHIkSivmOYr1/img.png&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;430&quot; data-is-animation=&quot;false&quot; width=&quot;390&quot; height=&quot;215&quot; style=&quot;width: 49.3869%;&quot; data-widthpercent=&quot;49.97&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQRJLH/btsM0ctwsLH/KvL5VikdXhQHIkSivmOYr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQRJLH%2FbtsM0ctwsLH%2FKvL5VikdXhQHIkSivmOYr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sIylS/btsM1gvdUq6/YIPcKmKLHBFvSbFNNYVJb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sIylS/btsM1gvdUq6/YIPcKmKLHBFvSbFNNYVJb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sIylS/btsM1gvdUq6/YIPcKmKLHBFvSbFNNYVJb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsIylS%2FbtsM1gvdUq6%2FYIPcKmKLHBFvSbFNNYVJb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;388&quot; height=&quot;210&quot; data-origin-width=&quot;784&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;841&quot; data-start=&quot;826&quot; data-ke-size=&quot;size26&quot;&gt;2-3. POST 방식&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;940&quot; data-start=&quot;852&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;868&quot; data-start=&quot;852&quot;&gt;데이터를 바디에 담아 전송&lt;/li&gt;
&lt;li data-end=&quot;896&quot; data-start=&quot;869&quot;&gt;주소창에 보이지 않음 &amp;rarr; 보안 상대적으로 우수&lt;/li&gt;
&lt;li data-end=&quot;912&quot; data-start=&quot;897&quot;&gt;대용량 데이터 전송 가능&lt;/li&gt;
&lt;li data-end=&quot;912&quot; data-start=&quot;897&quot;&gt;서버가 아직 실별하지 않은 새 리소스 생성&lt;/li&gt;
&lt;li data-end=&quot;940&quot; data-start=&quot;913&quot;&gt;&lt;b&gt;회원가입, 로그인, 결제 등 주로 사용&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;770&quot; data-end=&quot;778&quot; data-ke-size=&quot;size23&quot;&gt;ex) &lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;POST /register HTTP/1.1 Content-Type: application/x-www-form-urlencoded username=kim&amp;amp;password=1234&lt;/span&gt;&lt;/h3&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/A5Wfx/btsM03JGPP7/iCKg2WDkSvHa7lxVq4pm11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/A5Wfx/btsM03JGPP7/iCKg2WDkSvHa7lxVq4pm11/img.png&quot; width=&quot;312&quot; height=&quot;187&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;425&quot; data-is-animation=&quot;false&quot; style=&quot;width: 47.7221%; margin-right: 10px;&quot; data-widthpercent=&quot;48.28&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/A5Wfx/btsM03JGPP7/iCKg2WDkSvHa7lxVq4pm11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FA5Wfx%2FbtsM03JGPP7%2FiCKg2WDkSvHa7lxVq4pm11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;709&quot; height=&quot;425&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMvi1i/btsM13u5EvW/Qjms9GcS4BiCtZgnkKsRYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMvi1i/btsM13u5EvW/Qjms9GcS4BiCtZgnkKsRYk/img.png&quot; data-origin-width=&quot;788&quot; data-origin-height=&quot;441&quot; data-is-animation=&quot;false&quot; width=&quot;318&quot; height=&quot;178&quot; style=&quot;width: 51.1151%;&quot; data-widthpercent=&quot;51.72&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMvi1i/btsM13u5EvW/Qjms9GcS4BiCtZgnkKsRYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMvi1i%2FbtsM13u5EvW%2FQjms9GcS4BiCtZgnkKsRYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;788&quot; height=&quot;441&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;783&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0dmUL/btsM1hHCJDS/cxTKAXGKUpWkKpHodKJNjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0dmUL/btsM1hHCJDS/cxTKAXGKUpWkKpHodKJNjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0dmUL/btsM1hHCJDS/cxTKAXGKUpWkKpHodKJNjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0dmUL%2FbtsM1hHCJDS%2FcxTKAXGKUpWkKpHodKJNjk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;474&quot; height=&quot;253&quot; data-origin-width=&quot;783&quot; data-origin-height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;1079&quot; data-start=&quot;1065&quot; data-ke-size=&quot;size26&quot;&gt;2-4. PUT 방식&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1186&quot; data-start=&quot;1090&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1186&quot; data-start=&quot;1090&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1121&quot; data-start=&quot;1090&quot;&gt;&lt;b&gt;리소스 전체를 수정하거나 새로 생성&lt;/b&gt;할 때 사용 (파일을 덮어씌우기 처럼 수정 한다!!)&lt;/li&gt;
&lt;li data-end=&quot;1121&quot; data-start=&quot;1090&quot;&gt;리소스가 있으면 대체&lt;/li&gt;
&lt;li data-end=&quot;1121&quot; data-start=&quot;1090&quot;&gt;리소스가 없으면 생성&lt;/li&gt;
&lt;li data-end=&quot;1154&quot; data-start=&quot;1122&quot;&gt;같은 데이터를 여러 번 전송해도 동일한 결과 &lt;b&gt;(멱등성)&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1186&quot; data-start=&quot;1155&quot;&gt;보통 특정 id에 해당하는 데이터를 &lt;b&gt;전부 갱신&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1186&quot; data-start=&quot;1155&quot;&gt;&lt;b&gt;클라이언트가&amp;nbsp;리소스를&amp;nbsp;식별&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;778&quot; data-start=&quot;770&quot; data-ke-size=&quot;size23&quot;&gt;ex)&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;PUT /users/1 HTTP/1.1 Content-Type: application/json {&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&quot;name&quot;&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&quot;Kim&quot;&lt;span style=&quot;color: #333333;&quot;&gt;,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&quot;email&quot;&lt;span style=&quot;color: #333333;&quot;&gt;:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&quot;kim@example.com&quot;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1186&quot; data-start=&quot;1090&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1186&quot; data-start=&quot;1155&quot;&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQoqBW/btsM1KvyUkM/RW5086htRdGKYk5yiX154k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQoqBW/btsM1KvyUkM/RW5086htRdGKYk5yiX154k/img.png&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;423&quot; data-is-animation=&quot;false&quot; width=&quot;340&quot; height=&quot;184&quot; style=&quot;width: 49.9448%; margin-right: 10px;&quot; data-widthpercent=&quot;50.53&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQoqBW/btsM1KvyUkM/RW5086htRdGKYk5yiX154k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQoqBW%2FbtsM1KvyUkM%2FRW5086htRdGKYk5yiX154k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;782&quot; height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kxHTo/btsM0IyV6zQ/M6SA0VX8TZL8FJzmGBAudk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kxHTo/btsM0IyV6zQ/M6SA0VX8TZL8FJzmGBAudk/img.png&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;431&quot; data-is-animation=&quot;false&quot; width=&quot;353&quot; height=&quot;195&quot; style=&quot;width: 48.8924%;&quot; data-widthpercent=&quot;49.47&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kxHTo/btsM0IyV6zQ/M6SA0VX8TZL8FJzmGBAudk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkxHTo%2FbtsM0IyV6zQ%2FM6SA0VX8TZL8FJzmGBAudk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;431&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;div&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNWE33/btsM21Dkbv4/9Xy8VzAxAX9HQ3x7r2fVh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNWE33/btsM21Dkbv4/9Xy8VzAxAX9HQ3x7r2fVh0/img.png&quot; width=&quot;441&quot; height=&quot;243&quot; data-origin-width=&quot;805&quot; data-origin-height=&quot;444&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4714%; margin-right: 10px;&quot; data-widthpercent=&quot;50.05&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNWE33/btsM21Dkbv4/9Xy8VzAxAX9HQ3x7r2fVh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNWE33%2FbtsM21Dkbv4%2F9Xy8VzAxAX9HQ3x7r2fVh0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;805&quot; height=&quot;444&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kMdJO/btsM2eJTCCj/ISVDIQ4hv9zRlKGGlaxKC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kMdJO/btsM2eJTCCj/ISVDIQ4hv9zRlKGGlaxKC0/img.png&quot; data-origin-width=&quot;787&quot; data-origin-height=&quot;435&quot; data-is-animation=&quot;false&quot; width=&quot;460&quot; height=&quot;254&quot; style=&quot;width: 49.3658%;&quot; data-widthpercent=&quot;49.95&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kMdJO/btsM2eJTCCj/ISVDIQ4hv9zRlKGGlaxKC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkMdJO%2FbtsM2eJTCCj%2FISVDIQ4hv9zRlKGGlaxKC0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;787&quot; height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;주의 하자!!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-start=&quot;1519&quot; data-end=&quot;1536&quot; data-ke-size=&quot;size26&quot;&gt;2-6. PATCH 방식&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1405&quot; data-start=&quot;1342&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1365&quot; data-start=&quot;1342&quot;&gt;리소스의 &lt;b&gt;일부만 수정&lt;/b&gt;할 때 사용&lt;/li&gt;
&lt;li data-end=&quot;1393&quot; data-start=&quot;1366&quot;&gt;전체 데이터가 아닌 &lt;b&gt;변경할 항목만 전송&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1405&quot; data-start=&quot;1394&quot;&gt;PUT보다 효율적&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;778&quot; data-start=&quot;770&quot; data-ke-size=&quot;size23&quot;&gt;ex) &lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;PATCH /users/1 HTTP/1.1 Content-Type: application/json { &lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;&quot;email&quot;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;&quot;new@example.com&quot;&lt;/span&gt;&lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt; }&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bix1hC/btsM0rwZQKn/JHfEhrBOYhpkZWL9FsbPT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bix1hC/btsM0rwZQKn/JHfEhrBOYhpkZWL9FsbPT0/img.png&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;440&quot; data-is-animation=&quot;false&quot; width=&quot;360&quot; height=&quot;198&quot; style=&quot;width: 49.4605%; margin-right: 10px;&quot; data-widthpercent=&quot;50.04&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bix1hC/btsM0rwZQKn/JHfEhrBOYhpkZWL9FsbPT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbix1hC%2FbtsM0rwZQKn%2FJHfEhrBOYhpkZWL9FsbPT0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;801&quot; height=&quot;440&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbyjaG/btsM2ancIz8/YyTbkcNr5ZIqUPF30rRcbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbyjaG/btsM2ancIz8/YyTbkcNr5ZIqUPF30rRcbk/img.png&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;449&quot; data-is-animation=&quot;false&quot; width=&quot;358&quot; height=&quot;197&quot; style=&quot;width: 49.3767%;&quot; data-widthpercent=&quot;49.96&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbyjaG/btsM2ancIz8/YyTbkcNr5ZIqUPF30rRcbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbyjaG%2FbtsM2ancIz8%2FYyTbkcNr5ZIqUPF30rRcbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;816&quot; height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;일부만 변경~&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;1536&quot; data-start=&quot;1519&quot; data-ke-size=&quot;size26&quot;&gt;2-6. DELETE 방식&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1596&quot; data-start=&quot;1547&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1570&quot; data-start=&quot;1547&quot;&gt;지정된 리소스를 &lt;b&gt;삭제&lt;/b&gt;할 때 사용&lt;/li&gt;
&lt;li data-end=&quot;1596&quot; data-start=&quot;1571&quot;&gt;요청 시 바디 없이 URI로 리소스를 식별&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-end=&quot;778&quot; data-start=&quot;770&quot; data-ke-size=&quot;size23&quot;&gt;ex) &lt;span style=&quot;color: #333333; font-size: 16px; letter-spacing: 0px;&quot;&gt;DELETE /users/1 HTTP/1.1&lt;/span&gt;&lt;/h3&gt;
&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JyaXX/btsM1qqK4kp/kUTVCl1rPkl7JjMfGWEvr0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JyaXX/btsM1qqK4kp/kUTVCl1rPkl7JjMfGWEvr0/img.png&quot; width=&quot;324&quot; height=&quot;176&quot; data-origin-width=&quot;797&quot; data-origin-height=&quot;434&quot; data-is-animation=&quot;false&quot; style=&quot;width: 52.113%; margin-right: 10px;&quot; data-widthpercent=&quot;52.73&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JyaXX/btsM1qqK4kp/kUTVCl1rPkl7JjMfGWEvr0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJyaXX%2FbtsM1qqK4kp%2FkUTVCl1rPkl7JjMfGWEvr0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;797&quot; height=&quot;434&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tOUBb/btsM1RIpXYP/xg8cADK8qPTjf7b2rX7ye0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tOUBb/btsM1RIpXYP/xg8cADK8qPTjf7b2rX7ye0/img.png&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;430&quot; data-is-animation=&quot;false&quot; width=&quot;319&quot; height=&quot;194&quot; style=&quot;width: 46.7242%;&quot; data-widthpercent=&quot;47.27&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tOUBb/btsM1RIpXYP/xg8cADK8qPTjf7b2rX7ye0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtOUBb%2FbtsM1RIpXYP%2Fxg8cADK8qPTjf7b2rX7ye0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;708&quot; height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-end=&quot;1664&quot; data-start=&quot;1646&quot; data-ke-size=&quot;size26&quot;&gt;2-7. OPTIONS 방식&amp;nbsp;&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1764&quot; data-start=&quot;1675&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1706&quot; data-start=&quot;1675&quot;&gt;특정 리소스가 지원하는 &lt;b&gt;HTTP 메서드를 조회&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1745&quot; data-start=&quot;1707&quot;&gt;브라우저가 &lt;b&gt;CORS 사전 요청(Preflight)&lt;/b&gt; 시 사용&lt;/li&gt;
&lt;li data-end=&quot;1764&quot; data-start=&quot;1746&quot;&gt;실제로 데이터를 처리하진 않음&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;1786&quot; data-start=&quot;1771&quot; data-ke-size=&quot;size26&quot;&gt;2-8. HEAD 방식&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1884&quot; data-start=&quot;1797&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1823&quot; data-start=&quot;1797&quot;&gt;&lt;b&gt;응답 헤더만 받고, 바디는 받지 않음&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;1860&quot; data-start=&quot;1824&quot;&gt;리소스의 &lt;b&gt;존재 여부 확인&lt;/b&gt;, &lt;b&gt;상태 확인용&lt;/b&gt;으로 사용&lt;/li&gt;
&lt;li data-end=&quot;1884&quot; data-start=&quot;1861&quot;&gt;GET과 비슷하되, &lt;b&gt;본문을 제외&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-end=&quot;1919&quot; data-start=&quot;1891&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;참고: 멱등성(Idempotent)이란?&lt;/h2&gt;
&lt;blockquote data-end=&quot;1954&quot; data-start=&quot;1921&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;1954&quot; data-start=&quot;1923&quot; data-ke-size=&quot;size16&quot;&gt;같은 요청을 &lt;b&gt;여러 번 보내더라도 결과가 동일한 것!!! 1000번을 쏴도 똑같아야 한다!!&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;309&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLglKa/btsM15zqlQm/A9kjNkTNw2okKqc6xAbGe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLglKa/btsM15zqlQm/A9kjNkTNw2okKqc6xAbGe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLglKa/btsM15zqlQm/A9kjNkTNw2okKqc6xAbGe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLglKa%2FbtsM15zqlQm%2FA9kjNkTNw2okKqc6xAbGe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;774&quot; height=&quot;309&quot; data-origin-width=&quot;774&quot; data-origin-height=&quot;309&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>네트워크</category>
      <author>정성윤TV</author>
      <guid isPermaLink="true">https://love-codingbaby.tistory.com/7</guid>
      <comments>https://love-codingbaby.tistory.com/7#entry7comment</comments>
      <pubDate>Sat, 29 Mar 2025 20:49:32 +0900</pubDate>
    </item>
    <item>
      <title>[네트워크] HTTP 메시지 구조</title>
      <link>https://love-codingbaby.tistory.com/6</link>
      <description>&lt;h1 data-end=&quot;135&quot; data-start=&quot;117&quot;&gt;1. HTTP 메시지 구조&lt;/h1&gt;
&lt;p data-end=&quot;266&quot; data-start=&quot;169&quot; data-ke-size=&quot;size16&quot;&gt;HTTP 통신은 클라이언트와 서버가 주고받는 &lt;b&gt;메시지&lt;/b&gt;로 이루어지며,&lt;br /&gt;이 메시지는 크게&amp;nbsp; 요청(Request) 과 &lt;b&gt;응답(Response)&lt;/b&gt; 두 가지로 나뉜다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;549&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WN4zy/btsM1oNbV5a/LqK6rzKXd3ZWVeaWNfYwYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WN4zy/btsM1oNbV5a/LqK6rzKXd3ZWVeaWNfYwYK/img.png&quot; data-alt=&quot;HTTP 메시지에 모든 것을 전송 할 수 있다!!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WN4zy/btsM1oNbV5a/LqK6rzKXd3ZWVeaWNfYwYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWN4zy%2FbtsM1oNbV5a%2FLqK6rzKXd3ZWVeaWNfYwYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;351&quot; height=&quot;185&quot; data-origin-width=&quot;549&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;HTTP 메시지에 모든 것을 전송 할 수 있다!!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-end=&quot;305&quot; data-start=&quot;273&quot; data-ke-size=&quot;size26&quot;&gt;1-1. 요청 메시지 (Request Message)&lt;/h2&gt;
&lt;p data-end=&quot;343&quot; data-start=&quot;307&quot; data-ke-size=&quot;size16&quot;&gt;클라이언트가 서버에 &lt;b&gt;무언가를 요청할 때&lt;/b&gt; 보내는 메시지이다.&lt;/p&gt;
&lt;h3 data-end=&quot;354&quot; data-start=&quot;345&quot; data-ke-size=&quot;size23&quot;&gt;구성 구조&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;① 요청라인 (Request Line)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt; ② 헤더 (Header) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt; ③ 빈 줄 (CRLF) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt; ④ 바디 (Body)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;463&quot; data-start=&quot;437&quot; data-ke-size=&quot;size23&quot;&gt;1) 시작라인 (start-Line)&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;631&quot; data-start=&quot;465&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;631&quot; data-start=&quot;505&quot;&gt;
&lt;tr data-end=&quot;554&quot; data-start=&quot;505&quot;&gt;
&lt;td&gt;메서드&lt;/td&gt;
&lt;td&gt;클라이언트의 요청 방식&lt;/td&gt;
&lt;td&gt;GET, POST, PUT, DELETE 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;592&quot; data-start=&quot;555&quot;&gt;
&lt;td&gt;요청 URI&lt;/td&gt;
&lt;td&gt;요청 리소스의 경로&lt;/td&gt;
&lt;td&gt;/index.html&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;631&quot; data-start=&quot;593&quot;&gt;
&lt;td&gt;HTTP 버전&lt;/td&gt;
&lt;td&gt;사용 중인 HTTP 버전&lt;/td&gt;
&lt;td&gt;HTTP/1.1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-end=&quot;641&quot; data-start=&quot;633&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ex) &lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;GET&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;index&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;.html HTTP/&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;1.1&lt;/span&gt;&lt;/p&gt;
&lt;hr data-end=&quot;679&quot; data-start=&quot;676&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;699&quot; data-start=&quot;681&quot; data-ke-size=&quot;size23&quot;&gt;2) 헤더 (Header)&lt;/h3&gt;
&lt;p data-end=&quot;727&quot; data-start=&quot;701&quot; data-ke-size=&quot;size16&quot;&gt;요청에 대한 &lt;b&gt;부가적인 정보들&lt;/b&gt;이 포함된다.&lt;/p&gt;
&lt;p data-end=&quot;759&quot; data-start=&quot;729&quot; data-ke-size=&quot;size16&quot;&gt;예: 브라우저 종류, 언어 설정, 쿠키, 인증 토큰 등&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1030&quot; data-start=&quot;761&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1030&quot; data-start=&quot;809&quot;&gt;
&lt;tr data-end=&quot;857&quot; data-start=&quot;809&quot;&gt;
&lt;td&gt;Host&lt;/td&gt;
&lt;td&gt;요청 대상 서버의 도메인&lt;/td&gt;
&lt;td&gt;Host: &lt;a href=&quot;http://www.example.com&quot; data-end=&quot;855&quot; data-start=&quot;840&quot;&gt;www.example.com&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;918&quot; data-start=&quot;858&quot;&gt;
&lt;td&gt;User-Agent&lt;/td&gt;
&lt;td&gt;클라이언트 정보 (브라우저 등)&lt;/td&gt;
&lt;td&gt;User-Agent: Mozilla/5.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;973&quot; data-start=&quot;919&quot;&gt;
&lt;td&gt;Accept&lt;/td&gt;
&lt;td&gt;클라이언트가 처리 가능한 MIME 타입&lt;/td&gt;
&lt;td&gt;Accept: text/html&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1030&quot; data-start=&quot;974&quot;&gt;
&lt;td&gt;Cookie&lt;/td&gt;
&lt;td&gt;클라이언트가 보유한 쿠키 정보&lt;/td&gt;
&lt;td&gt;Cookie: sessionId=abc123&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1060&quot; data-start=&quot;1037&quot; data-ke-size=&quot;size23&quot;&gt;3) 바디 (Body) &amp;mdash; 선택사항&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1122&quot; data-start=&quot;1062&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1089&quot; data-start=&quot;1062&quot;&gt;&lt;b&gt;GET&lt;/b&gt; 요청은 일반적으로 바디 없음&lt;/li&gt;
&lt;li data-end=&quot;1122&quot; data-start=&quot;1090&quot;&gt;&lt;b&gt;POST, PUT&lt;/b&gt; 요청은 이곳에 데이터가 담긴다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1145&quot; data-start=&quot;1124&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;예시 (POST 요청의 바디): &lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;test&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;amp;password=1234&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1145&quot; data-start=&quot;1124&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;1215&quot; data-start=&quot;1182&quot; data-ke-size=&quot;size26&quot;&gt;1-2. 응답 메시지 (Response Message)&lt;/h2&gt;
&lt;p data-end=&quot;1260&quot; data-start=&quot;1217&quot; data-ke-size=&quot;size16&quot;&gt;서버가 클라이언트의 요청에 대해 &lt;b&gt;결과를 전달&lt;/b&gt;할 때 사용하는 메시지이다.&lt;/p&gt;
&lt;h3 data-end=&quot;1271&quot; data-start=&quot;1262&quot; data-ke-size=&quot;size23&quot;&gt;구성 구조&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;① 상태라인 (Status Line) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt; ② 헤더 (Header) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt; ③ 빈 줄 (CRLF) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt; ④ 바디 (Body)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;1378&quot; data-start=&quot;1353&quot; data-ke-size=&quot;size23&quot;&gt;1) 상태라인 (Status Line)&lt;/h3&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1549&quot; data-start=&quot;1380&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1549&quot; data-start=&quot;1420&quot;&gt;
&lt;tr data-end=&quot;1460&quot; data-start=&quot;1420&quot;&gt;
&lt;td&gt;HTTP 버전&lt;/td&gt;
&lt;td&gt;응답 메시지의 HTTP 버전&lt;/td&gt;
&lt;td&gt;HTTP/1.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1505&quot; data-start=&quot;1461&quot;&gt;
&lt;td&gt;상태 코드&lt;/td&gt;
&lt;td&gt;요청 처리 결과 숫자 코드&lt;/td&gt;
&lt;td&gt;200, 404, 500 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1549&quot; data-start=&quot;1506&quot;&gt;
&lt;td&gt;상태 메시지&lt;/td&gt;
&lt;td&gt;상태 코드에 대한 설명&lt;/td&gt;
&lt;td&gt;OK, Not Found 등&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1557&quot; data-start=&quot;1551&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ex) &lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;HTTP/1.1 200 OK&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1557&quot; data-start=&quot;1551&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1606&quot; data-start=&quot;1588&quot; data-ke-size=&quot;size23&quot;&gt;2) 헤더 (Header)&lt;/h3&gt;
&lt;p data-end=&quot;1630&quot; data-start=&quot;1608&quot; data-ke-size=&quot;size16&quot;&gt;응답에 대한 &lt;b&gt;부가 정보&lt;/b&gt;가 담긴다.&lt;/p&gt;
&lt;p data-end=&quot;1661&quot; data-start=&quot;1632&quot; data-ke-size=&quot;size16&quot;&gt;예: 콘텐츠 타입, 길이, 서버 정보, 쿠키 설정 등&lt;/p&gt;
&lt;div&gt;헤더 이름설명예시
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1899&quot; data-start=&quot;1663&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;1899&quot; data-start=&quot;1711&quot;&gt;
&lt;tr data-end=&quot;1774&quot; data-start=&quot;1711&quot;&gt;
&lt;td&gt;Content-Type&lt;/td&gt;
&lt;td&gt;응답 본문의 MIME 타입&lt;/td&gt;
&lt;td&gt;text/html, application/json&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1835&quot; data-start=&quot;1775&quot;&gt;
&lt;td&gt;Content-Length&lt;/td&gt;
&lt;td&gt;응답 바디의 길이 (byte)&lt;/td&gt;
&lt;td&gt;Content-Length: 1234&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1899&quot; data-start=&quot;1836&quot;&gt;
&lt;td&gt;Set-Cookie&lt;/td&gt;
&lt;td&gt;클라이언트에 쿠키 설정 지시&lt;/td&gt;
&lt;td&gt;Set-Cookie: sessionId=xyz789&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;1922&quot; data-start=&quot;1906&quot; data-ke-size=&quot;size23&quot;&gt;3) 바디 (Body)&lt;/h3&gt;
&lt;p data-end=&quot;1984&quot; data-start=&quot;1924&quot; data-ke-size=&quot;size16&quot;&gt;실제 &lt;b&gt;응답 데이터&lt;/b&gt;가 담기는 부분이다.&lt;br /&gt;&amp;rarr; HTML, 이미지, JSON 등 다양한 형식이 사용된다.&lt;/p&gt;
&lt;p data-end=&quot;1992&quot; data-start=&quot;1986&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1992&quot; data-start=&quot;1986&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;ex) &lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;lt;html&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;lt;body&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;gt;환영합니다!&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;lt;/body&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;lt;/html&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1992&quot; data-start=&quot;1986&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-end=&quot;2071&quot; data-start=&quot;2048&quot; data-ke-size=&quot;size26&quot;&gt;1-3. 요청/응답 메시지 예시 정리&lt;/h2&gt;
&lt;h3 data-end=&quot;2086&quot; data-start=&quot;2073&quot; data-ke-size=&quot;size23&quot;&gt;요청 메시지 예시&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;GET /hello HTTP/1.1 &lt;/span&gt;&lt;span&gt;&lt;span&gt;Host: www.example.com&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;User-Agent: Mozilla/5.0&lt;/span&gt;&lt;/span&gt;&lt;span&gt; (바디 없음) &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;2189&quot; data-start=&quot;2176&quot; data-ke-size=&quot;size23&quot;&gt;응답 메시지 예시&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;HTTP/1.1&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;200&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;OK&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;Content-Type:&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;text/html&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;Content-Length:&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;1024&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;&amp;lt;html&amp;gt;...&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;888&quot; data-origin-height=&quot;485&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/briyKk/btsM2Gzm5RL/2GO859Qi0Wp1FxVtDPfpJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/briyKk/btsM2Gzm5RL/2GO859Qi0Wp1FxVtDPfpJ1/img.png&quot; data-alt=&quot;이것이 핵심~&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/briyKk/btsM2Gzm5RL/2GO859Qi0Wp1FxVtDPfpJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbriyKk%2FbtsM2Gzm5RL%2F2GO859Qi0Wp1FxVtDPfpJ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;640&quot; height=&quot;350&quot; data-origin-width=&quot;888&quot; data-origin-height=&quot;485&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;이것이 핵심~&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <author>정성윤TV</author>
      <guid isPermaLink="true">https://love-codingbaby.tistory.com/6</guid>
      <comments>https://love-codingbaby.tistory.com/6#entry6comment</comments>
      <pubDate>Sat, 29 Mar 2025 16:56:07 +0900</pubDate>
    </item>
    <item>
      <title>[네트워크] URL, URN, HTTP, 무상태</title>
      <link>https://love-codingbaby.tistory.com/5</link>
      <description>&lt;h2 data-end=&quot;265&quot; data-start=&quot;223&quot; data-ke-size=&quot;size26&quot;&gt;0. URI (Uniform Resource Identifier)&lt;/h2&gt;
&lt;blockquote data-end=&quot;328&quot; data-start=&quot;267&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;328&quot; data-start=&quot;269&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;자원을 식별하는 통합 규칙&lt;/b&gt;&lt;br /&gt;&amp;rarr; 인터넷 상의 모든 자원을 고유하게 식별하기 위한 &lt;b&gt;표현 방식&lt;br /&gt;ex)&amp;nbsp; https://www.example.com/images/logo.png&lt;br /&gt;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 data-end=&quot;430&quot; data-start=&quot;391&quot; data-ke-size=&quot;size26&quot;&gt;0. URL (Uniform Resource Locator)&lt;/h2&gt;
&lt;blockquote data-end=&quot;500&quot; data-start=&quot;432&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;500&quot; data-start=&quot;434&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;자원이 &quot;어디에 있는지(위치)&quot;를 나타내는 주소&lt;/b&gt;&lt;br /&gt;&amp;rarr; 우리가 브라우저 주소창에 입력하는 것이 바로 URL이다.&lt;br /&gt;ex) &lt;a href=&quot;https://www.example.com:443/users?id=10#section1&quot;&gt;https://www.example.com:443/users?id=10#section1&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;625&quot; data-start=&quot;610&quot;&gt;https: 프로토콜&lt;/li&gt;
&lt;li data-end=&quot;650&quot; data-start=&quot;626&quot;&gt;www.example.com: 호스트&lt;/li&gt;
&lt;li data-end=&quot;670&quot; data-start=&quot;651&quot;&gt;443: 포트 (생략 가능), 일반적으로&amp;nbsp;생략,&amp;nbsp;생략시&amp;nbsp;http는&amp;nbsp;80,&amp;nbsp;https는&amp;nbsp;443&lt;/li&gt;
&lt;li data-end=&quot;685&quot; data-start=&quot;671&quot;&gt;/users: 경로&lt;/li&gt;
&lt;li data-end=&quot;705&quot; data-start=&quot;686&quot;&gt;?id=10: 쿼리 파라미터&lt;/li&gt;
&lt;li data-end=&quot;728&quot; data-start=&quot;706&quot;&gt;#section1: 북마크(앵커)&lt;/li&gt;
&lt;li data-end=&quot;728&quot; data-start=&quot;706&quot;&gt;일반적으로&amp;nbsp;생략,&amp;nbsp;생략시&amp;nbsp;http는&amp;nbsp;80,&amp;nbsp;https는&amp;nbsp;443&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhXh8J/btsM0IeGQZA/5PpGRoHRb03CZ9NETE3HRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhXh8J/btsM0IeGQZA/5PpGRoHRb03CZ9NETE3HRK/img.png&quot; data-alt=&quot;URL만 잘 기억하자&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhXh8J/btsM0IeGQZA/5PpGRoHRb03CZ9NETE3HRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhXh8J%2FbtsM0IeGQZA%2F5PpGRoHRb03CZ9NETE3HRK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;825&quot; height=&quot;394&quot; data-origin-width=&quot;825&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;URL만 잘 기억하자&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h1 data-end=&quot;135&quot; data-start=&quot;97&quot;&gt;1. HTTP(HyperText Transfer Protocol)&lt;/h1&gt;
&lt;p data-end=&quot;258&quot; data-start=&quot;137&quot; data-ke-size=&quot;size16&quot;&gt;HTTP는 웹에서 클라이언트(브라우저)와 서버 간 &lt;b&gt;요청-응답&lt;/b&gt; 통신을 위한 &lt;b&gt;텍스트 기반의 프로토콜&lt;/b&gt;이다.&lt;br /&gt;&amp;rarr; 사용자가 웹사이트에 접속할 때 브라우저가 HTTP 요청을 보내고, 서버가 이에 응답하는 구조.&lt;/p&gt;
&lt;p data-end=&quot;258&quot; data-start=&quot;137&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;rarr;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt; HTTP/1.1&amp;nbsp;1997년:&amp;nbsp;가장&amp;nbsp;많이&amp;nbsp;사용,&amp;nbsp;우리에게&amp;nbsp;가장&amp;nbsp;중요한&amp;nbsp;버전&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;350&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kWPEV/btsM20YEOgV/tjGk4mLP8DqLir0W1eHS81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kWPEV/btsM20YEOgV/tjGk4mLP8DqLir0W1eHS81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kWPEV/btsM20YEOgV/tjGk4mLP8DqLir0W1eHS81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkWPEV%2FbtsM20YEOgV%2FtjGk4mLP8DqLir0W1eHS81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;464&quot; height=&quot;350&quot; data-origin-width=&quot;464&quot; data-origin-height=&quot;350&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;269&quot; data-start=&quot;260&quot; data-ke-size=&quot;size23&quot;&gt;주요 특징&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;405&quot; data-start=&quot;270&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;317&quot; data-start=&quot;270&quot;&gt;&lt;b&gt;비연결성(Connectionless)&lt;/b&gt;: 요청 후 응답이 끝나면 연결이 끊김&lt;/li&gt;
&lt;li data-end=&quot;358&quot; data-start=&quot;318&quot;&gt;&lt;b&gt;무상태성(Stateless)&lt;/b&gt;: 이전 요청 정보를 기억하지 않음&lt;/li&gt;
&lt;li data-end=&quot;358&quot; data-start=&quot;318&quot;&gt;&lt;b&gt;단순함&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;405&quot; data-start=&quot;359&quot;&gt;&lt;b&gt;확장 가능&lt;/b&gt;: 쿠키, 세션, HTTPS 등 다양한 방식으로 기능 확장 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 data-end=&quot;428&quot; data-start=&quot;412&quot;&gt;2. HTTP 요청과 응답&lt;/h1&gt;
&lt;p data-end=&quot;453&quot; data-start=&quot;430&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;클라이언트 (브라우저) &amp;rarr; 요청(Request) 서버 &amp;rarr; 응답(Response)&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;668&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PuXhX/btsMZCyVOJP/PFkmyGJnDv4jQwP3RCdkn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PuXhX/btsMZCyVOJP/PFkmyGJnDv4jQwP3RCdkn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PuXhX/btsMZCyVOJP/PFkmyGJnDv4jQwP3RCdkn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPuXhX%2FbtsMZCyVOJP%2FPFkmyGJnDv4jQwP3RCdkn0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;668&quot; height=&quot;424&quot; data-origin-width=&quot;668&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;531&quot; data-start=&quot;518&quot; data-ke-size=&quot;size23&quot;&gt;요청 메시지 구조&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;요청라인: 요청 방식(GET, POST 등), 요청 URL, HTTP 버전&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;헤더: 브라우저 정보, 쿠키 등&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;본문(Body): 데이터 전송 (POST에서 주로 사용)&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;646&quot; data-start=&quot;633&quot; data-ke-size=&quot;size23&quot;&gt;응답 메시지 구조&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;상태라인: HTTP 버전, 상태 코드 (200, 404 등)&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;헤더: 서버 정보, 응답 형식&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&lt;span&gt;본문(Body): 실제 콘텐츠 (HTML, JSON 등)&lt;/span&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-end=&quot;760&quot; data-start=&quot;744&quot;&gt;3. HTTP 주요 메서드&lt;/h1&gt;
&lt;div&gt;메서드설명
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;942&quot; data-start=&quot;762&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;942&quot; data-start=&quot;793&quot;&gt;
&lt;tr data-end=&quot;835&quot; data-start=&quot;793&quot;&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;서버에서 데이터 조회 (ex. 게시글 목록 가져오기)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;873&quot; data-start=&quot;836&quot;&gt;
&lt;td&gt;POST&lt;/td&gt;
&lt;td&gt;서버에 데이터 생성 요청 (ex. 회원가입)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;896&quot; data-start=&quot;874&quot;&gt;
&lt;td&gt;PUT&lt;/td&gt;
&lt;td&gt;전체 데이터 수정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;919&quot; data-start=&quot;897&quot;&gt;
&lt;td&gt;PATCH&lt;/td&gt;
&lt;td&gt;일부 데이터 수정&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;942&quot; data-start=&quot;920&quot;&gt;
&lt;td&gt;DELETE&lt;/td&gt;
&lt;td&gt;데이터 삭제 요청&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1 data-end=&quot;1173&quot; data-start=&quot;1145&quot;&gt;4. HTTP의 무상태성 (Stateless)&lt;/h1&gt;
&lt;p data-end=&quot;1232&quot; data-start=&quot;1175&quot; data-ke-size=&quot;size16&quot;&gt;HTTP는 &lt;b&gt;Stateless&lt;/b&gt;, 즉 &lt;b&gt;서버가 클라이언트의 이전 요청 정보를 저장하지 않는다!&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-end=&quot;1243&quot; data-start=&quot;1234&quot; data-ke-size=&quot;size23&quot;&gt;장점&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1282&quot; data-start=&quot;1244&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1282&quot; data-start=&quot;1244&quot;&gt;서버 확장에 유리 (사용자 상태 저장 필요 없음 &amp;rarr; 가볍고 빠름)&lt;/li&gt;
&lt;li data-end=&quot;1282&quot; data-start=&quot;1244&quot;&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6qxB2/btsM0rjo3Rs/d728roajt4FX6dK6w43He1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6qxB2/btsM0rjo3Rs/d728roajt4FX6dK6w43He1/img.png&quot; width=&quot;659&quot; height=&quot;376&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;484&quot; data-origin-width=&quot;848&quot; style=&quot;width: 50.9347%; margin-right: 10px;&quot; data-widthpercent=&quot;51.56&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6qxB2/btsM0rjo3Rs/d728roajt4FX6dK6w43He1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6qxB2%2FbtsM0rjo3Rs%2Fd728roajt4FX6dK6w43He1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;848&quot; height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blvjHx/btsM2KhrDnd/DHV6EvbCfZHVKV7733BjF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blvjHx/btsM2KhrDnd/DHV6EvbCfZHVKV7733BjF0/img.png&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;489&quot; data-origin-width=&quot;805&quot; width=&quot;633&quot; height=&quot;385&quot; style=&quot;width: 47.8575%;&quot; data-widthpercent=&quot;48.44&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blvjHx/btsM2KhrDnd/DHV6EvbCfZHVKV7733BjF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblvjHx%2FbtsM2KhrDnd%2FDHV6EvbCfZHVKV7733BjF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;805&quot; height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;서버확장에 유리함&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;1292&quot; data-start=&quot;1284&quot; data-ke-size=&quot;size23&quot;&gt;단점&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1383&quot; data-start=&quot;1293&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1383&quot; data-start=&quot;1293&quot;&gt;로그인 상태 유지, 장바구니 등 &lt;b&gt;사용자 상태 관리가 필요&lt;/b&gt;한 경우 별도 처리가 필요함&lt;br /&gt;&amp;rarr; 이를 보완하는 기술: &lt;b&gt;쿠키, 세션, 토큰(JWT)&lt;/b&gt; 등&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;김영한-HTTPS 강의 정리&lt;/p&gt;
&lt;/div&gt;</description>
      <author>정성윤TV</author>
      <guid isPermaLink="true">https://love-codingbaby.tistory.com/5</guid>
      <comments>https://love-codingbaby.tistory.com/5#entry5comment</comments>
      <pubDate>Sat, 29 Mar 2025 16:17:18 +0900</pubDate>
    </item>
    <item>
      <title>[네트워크] PORT, DNS</title>
      <link>https://love-codingbaby.tistory.com/4</link>
      <description>&lt;h2 data-end=&quot;19&quot; data-start=&quot;0&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. PORT (포트)&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-end=&quot;37&quot; data-start=&quot;20&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;b&gt;포트란?&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;205&quot; data-start=&quot;38&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;124&quot; data-start=&quot;38&quot;&gt;IP 주소가 &lt;b&gt;네트워크 상의 장치를 식별&lt;/b&gt;한다면, &lt;b&gt;포트(Port)는 하나의 장치 내에서 실행 중인 특정 애플리케이션을 구분&lt;/b&gt;하는 역할을 한다.&lt;/li&gt;
&lt;li data-end=&quot;205&quot; data-start=&quot;125&quot;&gt;하나의 컴퓨터(서버)에서 여러 개의 서비스(웹 서버, 메일 서버 등)가 실행될 수 있기 때문에 포트 번호를 통해 목적지를 명확하게 구분한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;453&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8Gb8U/btsMO0SZomI/gvqzM2V17AkCrjS7lkBB70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8Gb8U/btsMO0SZomI/gvqzM2V17AkCrjS7lkBB70/img.png&quot; data-alt=&quot;IP안에서 각자 식별할 수 있게 만들어 놓은거임!!!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8Gb8U/btsMO0SZomI/gvqzM2V17AkCrjS7lkBB70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8Gb8U%2FbtsMO0SZomI%2FgvqzM2V17AkCrjS7lkBB70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;453&quot; data-origin-width=&quot;720&quot; data-origin-height=&quot;453&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;IP안에서 각자 식별할 수 있게 만들어 놓은거임!!!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;226&quot; data-start=&quot;207&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;포트의 특징&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;473&quot; data-start=&quot;227&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;255&quot; data-start=&quot;227&quot;&gt;&lt;b&gt;0 ~ 65535&lt;/b&gt; 범위의 숫자로 구성됨.&lt;/li&gt;
&lt;li data-end=&quot;330&quot; data-start=&quot;256&quot;&gt;&lt;b&gt;0 ~ 1023번 포트 (Well-Known Port)&lt;/b&gt;&lt;br /&gt;&amp;rarr; 주요 네트워크 서비스에 할당된 포트 (운영체제가 예약함) 잘 알려저서 안씀.&lt;/li&gt;
&lt;li data-end=&quot;398&quot; data-start=&quot;331&quot;&gt;&lt;b&gt;1024 ~ 49151번 포트 (Registered Port)&lt;/b&gt;&lt;br /&gt;&amp;rarr; 특정 애플리케이션을 위해 등록된 포트&lt;/li&gt;
&lt;li data-end=&quot;473&quot; data-start=&quot;399&quot;&gt;&lt;b&gt;49152 ~ 65535번 포트 (Dynamic/Private Port)&lt;/b&gt;&lt;br /&gt;&amp;rarr; 일시적으로 사용되는 포트 (임시 연결)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;496&quot; data-start=&quot;475&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;주요 포트 번호&lt;/b&gt;&lt;/h3&gt;
&lt;div&gt;서비스포트 번호
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;680&quot; data-start=&quot;497&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;680&quot; data-start=&quot;523&quot;&gt;
&lt;tr data-end=&quot;540&quot; data-start=&quot;523&quot;&gt;
&lt;td&gt;HTTP (웹)&lt;/td&gt;
&lt;td&gt;80&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;563&quot; data-start=&quot;541&quot;&gt;
&lt;td&gt;HTTPS (보안 웹)&lt;/td&gt;
&lt;td&gt;443&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;588&quot; data-start=&quot;564&quot;&gt;
&lt;td&gt;FTP (파일 전송)&lt;/td&gt;
&lt;td&gt;20, 21&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;609&quot; data-start=&quot;589&quot;&gt;
&lt;td&gt;SSH (원격 접속)&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;635&quot; data-start=&quot;610&quot;&gt;
&lt;td&gt;DNS (도메인 네임 시스템)&lt;/td&gt;
&lt;td&gt;53&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;657&quot; data-start=&quot;636&quot;&gt;
&lt;td&gt;SMTP (메일 전송)&lt;/td&gt;
&lt;td&gt;25&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;680&quot; data-start=&quot;658&quot;&gt;
&lt;td&gt;POP3 (메일 수신)&lt;/td&gt;
&lt;td&gt;110&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;685&quot; data-start=&quot;682&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;721&quot; data-start=&quot;687&quot; data-ke-size=&quot;size26&quot;&gt;2. &lt;b&gt;DNS (Domain Name System)&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-end=&quot;740&quot; data-start=&quot;722&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;DNS란?&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;849&quot; data-start=&quot;741&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;770&quot; data-start=&quot;741&quot;&gt;&lt;b&gt;도메인 네임을 IP 주소로 변환하는 시스템&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;849&quot; data-start=&quot;771&quot;&gt;사람이 기억하기 쉬운 도메인 주소(예: google.com)를 숫자로 된 IP 주소(예: 142.250.74.14)로 변환해준다.&lt;/li&gt;
&lt;li data-end=&quot;849&quot; data-start=&quot;771&quot;&gt;그냥 전화번호부 같은 거임!!&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;875&quot; data-start=&quot;851&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;DNS가 필요한 이유&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1068&quot; data-start=&quot;876&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;951&quot; data-start=&quot;876&quot;&gt;&lt;b&gt;IP 주소는 기억하기 어렵다&lt;/b&gt;&lt;br /&gt;&amp;rarr; 142.250.74.14 대신 google.com을 입력하여 접근 가능&lt;/li&gt;
&lt;li data-end=&quot;1013&quot; data-start=&quot;952&quot;&gt;&lt;b&gt;IP 주소는 변경될 수 있다&lt;/b&gt;&lt;br /&gt;&amp;rarr; 서버의 IP가 변경되더라도, 도메인을 통해 접속 가능&lt;/li&gt;
&lt;li data-end=&quot;1068&quot; data-start=&quot;1014&quot;&gt;&lt;b&gt;웹사이트 운영이 편리해진다&lt;/b&gt;&lt;br /&gt;&amp;rarr; 여러 개의 서버(IP)로 로드 밸런싱 가능&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-end=&quot;1092&quot; data-start=&quot;1070&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;DNS 작동 과정&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;1262&quot; data-start=&quot;1093&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;1120&quot; data-start=&quot;1093&quot;&gt;사용자가 www.google.com 입력&lt;/li&gt;
&lt;li data-end=&quot;1162&quot; data-start=&quot;1121&quot;&gt;로컬 DNS 서버에 www.google.com의 IP 주소를 요청&lt;/li&gt;
&lt;li data-end=&quot;1212&quot; data-start=&quot;1163&quot;&gt;로컬 DNS 서버에 데이터가 없으면 **상위 DNS 서버(루트 네임서버)**에 요청&lt;/li&gt;
&lt;li data-end=&quot;1235&quot; data-start=&quot;1213&quot;&gt;최종적으로 IP 주소를 찾아서 반환&lt;/li&gt;
&lt;li data-end=&quot;1262&quot; data-start=&quot;1236&quot;&gt;사용자의 브라우저가 해당 IP 주소로 접속&amp;nbsp;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vPEJh/btsMPlCAVeX/bfm4hmBtVkyAf9CxynuL90/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vPEJh/btsMPlCAVeX/bfm4hmBtVkyAf9CxynuL90/img.png&quot; data-alt=&quot;DNS로 IP찼고 그IP로 접속함!!&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vPEJh/btsMPlCAVeX/bfm4hmBtVkyAf9CxynuL90/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvPEJh%2FbtsMPlCAVeX%2Fbfm4hmBtVkyAf9CxynuL90%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;746&quot; height=&quot;406&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;406&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;DNS로 IP찼고 그IP로 접속함!!&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 data-end=&quot;1287&quot; data-start=&quot;1264&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;DNS 서버의 역할&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1418&quot; data-start=&quot;1288&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1326&quot; data-start=&quot;1288&quot;&gt;&lt;b&gt;루트 네임서버&lt;/b&gt;: 최상위 DNS 서버, 도메인의 최상위 관리&lt;/li&gt;
&lt;li data-end=&quot;1380&quot; data-start=&quot;1327&quot;&gt;&lt;b&gt;TLD 네임서버&lt;/b&gt;: .com, .org, .net 등의 최상위 도메인을 관리&lt;/li&gt;
&lt;li data-end=&quot;1418&quot; data-start=&quot;1381&quot;&gt;&lt;b&gt;권한 네임서버&lt;/b&gt;: 개별 도메인의 IP 주소를 저장하고 관리&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;김영한-HTTPS 강의 정리&lt;/p&gt;</description>
      <author>정성윤TV</author>
      <guid isPermaLink="true">https://love-codingbaby.tistory.com/4</guid>
      <comments>https://love-codingbaby.tistory.com/4#entry4comment</comments>
      <pubDate>Tue, 18 Mar 2025 22:59:44 +0900</pubDate>
    </item>
    <item>
      <title>[네트워크] IP,TCP/IP, UDP</title>
      <link>https://love-codingbaby.tistory.com/3</link>
      <description>&lt;h3 data-end=&quot;52&quot; data-start=&quot;36&quot; data-ke-size=&quot;size23&quot;&gt;0.인터넷 프로토콜 4계층&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nakyR/btsMPmVN7yQ/kK3tfbQ5FkRKH1YIGzU4g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nakyR/btsMPmVN7yQ/kK3tfbQ5FkRKH1YIGzU4g0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nakyR/btsMPmVN7yQ/kK3tfbQ5FkRKH1YIGzU4g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnakyR%2FbtsMPmVN7yQ%2FkK3tfbQ5FkRKH1YIGzU4g0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;220&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0ZfDS/btsMOifCN9Z/0QiOMLY9DzhxZtI70lk7dk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0ZfDS/btsMOifCN9Z/0QiOMLY9DzhxZtI70lk7dk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0ZfDS/btsMOifCN9Z/0QiOMLY9DzhxZtI70lk7dk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0ZfDS%2FbtsMOifCN9Z%2F0QiOMLY9DzhxZtI70lk7dk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;759&quot; height=&quot;364&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-end=&quot;52&quot; data-start=&quot;36&quot; data-ke-size=&quot;size23&quot;&gt;1. 인터넷 통신 개요&lt;/h3&gt;
&lt;p data-end=&quot;134&quot; data-start=&quot;53&quot; data-ke-size=&quot;size16&quot;&gt;인터넷에서 컴퓨터 간 통신은 &lt;b&gt;클라이언트-서버 모델&lt;/b&gt;을 기반으로 이루어진다. 한 컴퓨터가 요청을 보내면 다른 컴퓨터가 응답을 보내는 방식이다.&lt;/p&gt;
&lt;p data-end=&quot;134&quot; data-start=&quot;53&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-end=&quot;164&quot; data-start=&quot;136&quot; data-ke-size=&quot;size23&quot;&gt;2. IP(Internet Protocol)&lt;/h3&gt;
&lt;p data-end=&quot;283&quot; data-start=&quot;165&quot; data-ke-size=&quot;size16&quot;&gt;IP는 인터넷에서 데이터를 전달하는 핵심 프로토콜이다. 데이터를 &lt;b&gt;패킷(Packet)&lt;/b&gt; 단위로 쪼개어 목적지 IP 주소로 전송한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;283&quot; data-start=&quot;165&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;283&quot; data-start=&quot;165&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;-&amp;nbsp;IP패킷&amp;nbsp;안에&amp;nbsp;있는&amp;nbsp;정보는&amp;nbsp;출발지&amp;nbsp;IP,&amp;nbsp;도착지&amp;nbsp;IP,&amp;nbsp;전송데이터,&amp;nbsp;기타&amp;nbsp;등등...&amp;nbsp;이&amp;nbsp;있다!!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;659&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bP4WlI/btsMNrjXR0S/MMR1g7xXswjI94xQ79XKC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bP4WlI/btsMNrjXR0S/MMR1g7xXswjI94xQ79XKC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bP4WlI/btsMNrjXR0S/MMR1g7xXswjI94xQ79XKC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbP4WlI%2FbtsMNrjXR0S%2FMMR1g7xXswjI94xQ79XKC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;659&quot; height=&quot;405&quot; data-origin-width=&quot;659&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pVnUw/btsMOs3psMG/AAcS7heIkkkcEmvXOXdYKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pVnUw/btsMOs3psMG/AAcS7heIkkkcEmvXOXdYKk/img.png&quot; data-alt=&quot;패킷 전달 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pVnUw/btsMOs3psMG/AAcS7heIkkkcEmvXOXdYKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpVnUw%2FbtsMOs3psMG%2FAAcS7heIkkkcEmvXOXdYKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;778&quot; height=&quot;427&quot; data-origin-width=&quot;778&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;패킷 전달 예시&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;283&quot; data-start=&quot;165&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;283&quot; data-start=&quot;165&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;283&quot; data-start=&quot;165&quot; data-ke-size=&quot;size16&quot;&gt;그러나 &lt;b&gt;IP만으로는 안정적인 데이터 전송이 어렵다&lt;/b&gt;. IP의 한계:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;409&quot; data-start=&quot;284&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;321&quot; data-start=&quot;284&quot;&gt;&lt;b&gt;비연결성&lt;/b&gt;: 대상이 없거나 서비스 불능 상태여도 패킷 전송 ex)상대 컴퓨터가 꺼저 있어도 전송을 한다...하지만 받지 못하겠지&lt;/li&gt;
&lt;li data-end=&quot;355&quot; data-start=&quot;322&quot;&gt;&lt;b&gt;비신뢰성&lt;/b&gt;: 패킷이 손실되거나 순서가 뒤바뀔 가능성이 있다.&lt;/li&gt;
&lt;li data-end=&quot;409&quot; data-start=&quot;356&quot;&gt;&lt;b&gt;프로그램 구분 불가능&lt;/b&gt;: 같은 IP에서 여러 개의 애플리케이션이 실행될 경우 구별 불가&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;456&quot; data-start=&quot;411&quot; data-ke-size=&quot;size16&quot;&gt;이 문제를 해결하기 위해 &lt;b&gt;전송 계층 프로토콜인 TCP와 UDP&lt;/b&gt;가 존재한다.&lt;/p&gt;
&lt;hr data-end=&quot;461&quot; data-start=&quot;458&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;479&quot; data-start=&quot;463&quot; data-ke-size=&quot;size26&quot;&gt;3.&amp;nbsp;TCP (Transmission Control Protocol)&lt;/h2&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;365&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxHUOC/btsMOej8Iig/jwZy6KRfugVCjnKCsShU11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxHUOC/btsMOej8Iig/jwZy6KRfugVCjnKCsShU11/img.png&quot; data-alt=&quot;TCP/IP 패킷 정보&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxHUOC/btsMOej8Iig/jwZy6KRfugVCjnKCsShU11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxHUOC%2FbtsMOej8Iig%2FjwZy6KRfugVCjnKCsShU11%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;678&quot; height=&quot;365&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;365&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;TCP/IP 패킷 정보&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;707&quot; data-start=&quot;520&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;565&quot; data-start=&quot;520&quot;&gt;&lt;b&gt;연결 지향적&lt;/b&gt;: 통신 전 3-way handshake를 통해 연결을 설정&lt;/li&gt;
&lt;li data-end=&quot;611&quot; data-start=&quot;566&quot;&gt;&lt;b&gt;데이터 전달 보장&lt;/b&gt;: 패킷 손실 시 재전송, 수신 확인(ACK) 메커니즘&lt;/li&gt;
&lt;li data-end=&quot;642&quot; data-start=&quot;612&quot;&gt;&lt;b&gt;순서 보장&lt;/b&gt;: 패킷이 순서대로 도착하도록 조정&lt;/li&gt;
&lt;li data-end=&quot;707&quot; data-start=&quot;643&quot;&gt;&lt;b&gt;신뢰성이 높지만 속도가 느리다!!!&lt;/b&gt;&lt;br /&gt;&amp;rarr; HTTP, 이메일, 파일 전송 등 신뢰성이 중요한 서비스에 사용됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/50QlG/btsMO50U4jK/ZXGzNc5NXy94ywaeQ8ZO21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/50QlG/btsMO50U4jK/ZXGzNc5NXy94ywaeQ8ZO21/img.png&quot; data-alt=&quot;3-way handshake&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/50QlG/btsMO50U4jK/ZXGzNc5NXy94ywaeQ8ZO21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F50QlG%2FbtsMO50U4jK%2FZXGzNc5NXy94ywaeQ8ZO21%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;714&quot; height=&quot;421&quot; data-origin-width=&quot;714&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;3-way handshake&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;hr data-end=&quot;712&quot; data-start=&quot;709&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;748&quot; data-start=&quot;714&quot; data-ke-size=&quot;size26&quot;&gt;4. UDP (User Datagram Protocol)&lt;/h2&gt;
&lt;p data-end=&quot;795&quot; data-start=&quot;749&quot; data-ke-size=&quot;size16&quot;&gt;UDP는 &lt;b&gt;비연결형 전송 프로토콜&lt;/b&gt;로, 데이터를 빠르게 전송하는 것이 목표이다.&lt;/p&gt;
&lt;h3 data-end=&quot;808&quot; data-start=&quot;797&quot; data-ke-size=&quot;size23&quot;&gt;UDP의 특징&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1015&quot; data-start=&quot;809&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;853&quot; data-start=&quot;809&quot;&gt;&lt;b&gt;연결 설정 없음&lt;/b&gt;: 3-way handshake 없이 바로 데이터 전송&lt;/li&gt;
&lt;li data-end=&quot;885&quot; data-start=&quot;854&quot;&gt;&lt;b&gt;데이터 전달 보장 X&lt;/b&gt;: 패킷이 손실될 수 있음&lt;/li&gt;
&lt;li data-end=&quot;922&quot; data-start=&quot;886&quot;&gt;&lt;b&gt;순서 보장 X&lt;/b&gt;: 패킷이 순서대로 도착한다는 &lt;b&gt;보장이 없음&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;972&quot; data-start=&quot;923&quot;&gt;&lt;b&gt;단순한 구조&lt;/b&gt;: &lt;b&gt;IP 프로토콜 + PORT + 체크섬&lt;/b&gt; 정도만 추가된 형태&lt;/li&gt;
&lt;li data-end=&quot;1015&quot; data-start=&quot;973&quot;&gt;&lt;b&gt;빠른 속도&lt;/b&gt;: TCP보다 지연이 적고&lt;b&gt; 실시간 성능이 중요할 때 적합!!&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;UDP는 신뢰성을 희생하는 대신&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;빠른 속도와 낮은 지연시간&lt;/b&gt;을 제공하는 프로토콜이다.&lt;/p&gt;
&lt;h3 data-end=&quot;1031&quot; data-start=&quot;1017&quot; data-ke-size=&quot;size23&quot;&gt;UDP의 활용 사례&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1232&quot; data-start=&quot;1032&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1102&quot; data-start=&quot;1032&quot;&gt;&lt;b&gt;실시간 스트리밍 (음성&amp;middot;영상 통화, IPTV, 게임)&lt;/b&gt;&lt;br /&gt;&amp;rarr; 약간의 데이터 손실이 있더라도 빠른 전송이 중요&lt;/li&gt;
&lt;li data-end=&quot;1178&quot; data-start=&quot;1103&quot;&gt;&lt;b&gt;DNS (Domain Name System)&lt;/b&gt;&lt;br /&gt;&amp;rarr; 빠른 요청-응답이 필요하며, 일부 데이터 손실이 발생해도 문제없음&lt;/li&gt;
&lt;li data-end=&quot;1232&quot; data-start=&quot;1179&quot;&gt;&lt;b&gt;사물인터넷 (IoT) 기기 통신&lt;/b&gt;&lt;br /&gt;&amp;rarr; 가벼운 데이터 전송과 빠른 응답이 필요&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;1237&quot; data-start=&quot;1234&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1259&quot; data-start=&quot;1239&quot; data-ke-size=&quot;size26&quot;&gt;5. TCP와 UDP 비교 요약&lt;/h2&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 137px;&quot; border=&quot;1&quot; data-end=&quot;1486&quot; data-start=&quot;1260&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style12&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;TCP&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot;&gt;UDP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot; data-end=&quot;1333&quot; data-start=&quot;1291&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;연결 방식&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;연결 지향 (3-way handshake)&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;비연결형&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot; data-end=&quot;1374&quot; data-start=&quot;1334&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;데이터 전달 보장&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;O (손실 시 재전송)&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;X (손실 가능)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot; data-end=&quot;1392&quot; data-start=&quot;1375&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;순서 보장&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;O&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;X&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot; data-end=&quot;1428&quot; data-start=&quot;1393&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;속도&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;느림 (오버헤드 큼)&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;빠름 (오버헤드 적음)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot; data-end=&quot;1446&quot; data-start=&quot;1429&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;신뢰성&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;높음&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;낮음&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot; data-end=&quot;1486&quot; data-start=&quot;1447&quot;&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;용도&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;웹, 이메일, 파일 전송&lt;/td&gt;
&lt;td style=&quot;height: 20px;&quot;&gt;스트리밍, 게임, VoIP&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p data-is-only-node=&quot;&quot; data-is-last-node=&quot;&quot; data-end=&quot;1538&quot; data-start=&quot;1488&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-is-only-node=&quot;&quot; data-is-last-node=&quot;&quot; data-end=&quot;1538&quot; data-start=&quot;1488&quot; data-ke-size=&quot;size16&quot;&gt;김영한-HTTPS 강의 정리&lt;/p&gt;</description>
      <author>정성윤TV</author>
      <guid isPermaLink="true">https://love-codingbaby.tistory.com/3</guid>
      <comments>https://love-codingbaby.tistory.com/3#entry3comment</comments>
      <pubDate>Tue, 18 Mar 2025 22:39:30 +0900</pubDate>
    </item>
  </channel>
</rss>