<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>8 on 中二青年</title>
    <link>https://zhong-er.com/tags/8/</link>
    <description>Recent content in 8 on 中二青年</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 03 Sep 2019 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://zhong-er.com/tags/8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>【前端】HTML</title>
      <link>https://zhong-er.com/posts/%E5%89%8D%E7%AB%AFhtml/</link>
      <pubDate>Tue, 03 Sep 2019 00:00:00 +0000</pubDate>
      <guid>https://zhong-er.com/posts/%E5%89%8D%E7%AB%AFhtml/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;HTML.png&#34; loading=&#34;lazy&#34; src=&#34;https://zhong-er.com/assets/201909033609_3808_1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;a href=&#34;https://mubu.com/doc/1xQPI57bf8&#34; title=&#34;思维导图&#34;&gt;&lt;strong&gt;思维导图&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Web服务本质&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1.浏览器发请求 &amp;ndash;&amp;gt; HTTP协议 &amp;ndash;&amp;gt;&lt;/p&gt;
&lt;p&gt;2.服务端接收请求 &amp;ndash;&amp;gt;&lt;/p&gt;
&lt;p&gt;3.服务端返回响应 &amp;ndash;&amp;gt; 服务端把HTML文件内容发给浏览器 &amp;ndash;&amp;gt;&lt;/p&gt;
&lt;p&gt;4.浏览器渲染页面&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;import socket
sk = socket.socket()
sk.bind((&amp;quot;127.0.0.1&amp;quot;, 8080))
sk.listen(5)
while True:
    conn, addr = sk.accept()
    data = conn.recv(8096)
    conn.send(b&amp;quot;HTTP/1.1 200 OK\r\n\r\n&amp;quot;)
    conn.send(b&amp;quot;&amp;lt;h1&amp;gt;Hello world!&amp;lt;/h1&amp;gt;&amp;quot;)
    conn.close()
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;HTTP协议&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;超文本传输协议，规定了浏览器与服务端之间消息传输的数据格式&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;四大特性：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1.基于请求响应&lt;/p&gt;
&lt;p&gt;2.基于TCP/IP之上的作用于应用层的协议&lt;/p&gt;
&lt;p&gt;3.无状态(服务端无法保存用户的状态)&lt;/p&gt;
&lt;p&gt;4.无连接(请求一次响应一次，之后立刻断开连接)&lt;/p&gt;
&lt;p&gt;websocket相当于HTTP协议的一个补丁，它支持长连接&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;请求数据格式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;请求首行(表示HTTP协议版本，当前请求方式)&lt;/p&gt;
&lt;p&gt;请求头(一大堆k,v键值对)&lt;/p&gt;
&lt;p&gt;请求体(携带的是一些敏感信息比如密码、身份证号&amp;hellip;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;响应数据格式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;响应首行(标识HTTP协议版本,响应状态码)&lt;/p&gt;
&lt;p&gt;响应头(一大堆k,v键值对)&lt;/p&gt;
&lt;p&gt;响应体(返回给浏览器页面的数据 通常响应体都是html页面)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;响应状态码&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;用一串简单的数字来表示一些复杂的状态或者提示信息&lt;/p&gt;
&lt;p&gt;1XX:服务端已经成功接收了你的数据正在处理 你可以继续提交额外的数据&lt;/p&gt;
&lt;p&gt;2XX:服务端成功响应 你想要的数据(请求成功200)&lt;/p&gt;
&lt;p&gt;3XX:重定向(当你在访问一个需要登录之后才能访问的页面 你会发现窗口会自动调到登录页面 301 302)&lt;/p&gt;
&lt;p&gt;4XX:请求错误(请求资源不存在404,请求不合法不符合内部规定会权限不够403)&lt;/p&gt;
&lt;p&gt;5XX:服务器内部错误(500)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;请求方式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;get请求(向服务端要资源）&lt;/p&gt;
&lt;p&gt;post请求(向服务端提交数据)&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
