Web服务的本质(socket实例)

import socket

def handle_request(client):
buf = client.recv(1024)
client.send(bytes("HTTP/1.1 200 OK\r\n\r\n",encoding = 'utf-8'))
client.send(bytes("welcome")) def main():
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('localhost', 8000))
sock.listen(5) while True:
try:
connection, address = sock.accept()
handle_request(connection)
connection.close()
except:
pass if __name__ == '__main__':
main()

Web Server

HTML文档树

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> </body>
</html>

HTML文件结构

Doctype

Doctype告诉浏览器使用什么样的html或xhtml规范来解析html文档

<!DOCTYPE html>

标签分类

1. 自闭和标签

<title>Title</title>

2. 主动闭合标签

<meta />

所有标签可以分为两类

  - 块级标签:div,H系列,p级标签... (特性,占整行内容,可以设置高度和宽度)

  - 内联标签(行内标签):span标签... (特性,有多少占多少,无法设置高度和宽度)

head部分

Meta(metadata information)

提供有关页面的元信息,例:页面编码、刷新、跳转、针对搜索引擎和更新频度的描述和关键词

1. 页面编码(告诉浏览器使用什么编码)

< meta http-equiv=“content-type” content=“text/html;charset=utf-8”/>

2. 刷新和跳转

< meta http-equiv="Refresh" Content="30"/>

< meta http-equiv="Refresh" Content="5"; Url="http://www.autohome.com.cn"/>

3. 关键字(搜索引擎的爬虫就是根据这里写的关键字去寻找对用的页面)

<meta name="keywords" content="Html,css,社区,python"/>

4. 描述

<meta name="description" content="描述信息"/>

5. X-UA-Compatible

  用来解决HTML代码与IE之间的兼容,更多

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

title

网页的标题

<title>Title</title>

link

1. 引入CSS文件

< link rel="stylesheet" type="text/css" href="css/common.css" >

2. 页面图标 icon

< link rel="shortcut icon" href="image/favicon.ico">

Style

在页面中写css样式

<style>
.pg-head {
height: 30px;
background-color: green;
position: fixed;
top: 0;
right: 0;
left: 0;
}
</style>

Script

1. 引入JS文件

< script type="text/javascript" src="js/gpt.js"> </script >

2. 写JS代码

< script type="text/javascript" > ... </script >

body

网页图片HTML代码大全

P和br标签

p表示段落,默认段落之间是有间隔的!

br 是换行

<p>段落内容</p>
<br/>

H标签

<h1>H1</h1>
<h2>H2</h2>
<h3>H3</h3>
<h4>H4</h4>
<h5>H5</h5>
<h6>H6</h6>

div和span标签

div是块级标签

span是行内标签

<div>hello world</div>
<span>hello world</span>

form表单

input标签和form标签的结合

<form action="http://localhost:8888/index" method="GET">
<input type="text" name="user" />
<input type="password" name="pwd" />
<input type="submit" value="登录" />
</form>

action为提交的地址,method为提交的方式(GET:将提交的数据嵌套的URL上进行提交;POST:将提交的数据放在body中提交)

添加属性:disabled输入框将不可编辑

input type="text"  - 普通文本输入框  属性:name,values

input type="password"  - 密文输入框     属性:name,values

<form action="http://www.spdir.top" method="POST">
user: <input type="text" name="user" valuse="user" />
password: <input type="password" name="pwd" values="password" />
</form>

<div style="width: 600px; margin: 0 auto;">
<input type="text" placeholder="请输入搜索内容" />
</div>

input type='submit'  - 提交表单按钮,属性values
input type='button'  - 普通按钮,没有实际意义(用于结合JS使用),属性values
input type='reset'          - 重置 ,属性values

<form action="http://www.spdir.top" method="POST">
<input type="submit" value="提交"/>
<input type="button" value="按钮"/>
  <input type="reset" value="重置"/>
</form>

input type='radio'    - 单选框,属性value,checked="checked",name(name相同则互斥),checked="checked"设置默认值

<form action="http://www.spdir.top" method="POST">
男: <input type="radio" name="gender" value="1"/>
女: <input type="radio" name="gender" value="2" />
保密: <input type="radio" name="gender" value="3" checked="checked" />
</form>

input type='checkbox' - 复选框 属性value, checked="checked",name属性(批量获取数据),checked="checked"设置默认值

<form action="http://www.spdir.top" method="POST">
<p>爱好</p>
篮球: <input type="checkbox" name="interest" value="1"/>
足球: <input type="checkbox" name="interest" value="2"/>
羽毛球: <input type="checkbox" name="interest" value="3"/>
游泳: <input type="checkbox" name="interest" value="3"/>
读书: <input type="checkbox" name="interest" value="4" checked="checked"/>
学习: <input type="checkbox" name="interest" value="5"/>
</form>

input type='file'     - 上传文件,依赖form表单的一个属性 enctype="multipart/form-data"

<form action="http://www.spdir.top" enctype="multipart/form-data" method="POST">
<input type="file" name="fname" />
</form>

form与select的结合

属性:selected="selected"用来设置默认值

<form action="http://www.spdir.top"  method="POST">
city1:
<select name="city1">
<option value="1">北京</option>
<option value="2" selected="selected">上海</option>
<option value="3">广州</option>
<option value="4">深圳</option>
<option value="5">成都</option>
</select>
</form>

在select标签中设置一个属性size指定显示的多少个值

<form action="http://www.spdir.top"  method="POST">
city2:
<select name="city2" size="6">
<option value="1">北京</option>
<option value="2" selected="selected">上海</option>
<option value="3">广州</option>
<option value="4">深圳</option>
<option value="5">成都</option>
</select>
</form>

在select标签中设置一个multiple="multiple"属性可以进行多选

<form action="http://www.spdir.top"  method="POST">
city3:
<select name="city3" multiple="multiple" size="5">
<option value="1">北京</option>
<option value="2" selected="selected">上海</option>
<option value="3">广州</option>
<option value="4">深圳</option>
<option value="5">成都</option>
</select>
</form>

进行分组,使用optgroup标签嵌套option标签

<form action="http://www.spdir.top"  method="POST">
city4:
<select name="city4">
<optgroup label="河北省">
<option value="1">石家庄</option>
<option value="2">邯郸</option>
</optgroup>
<optgroup label="北京">
<option value="3" selected="selected">朝阳</option>
<option value="4">海淀</option>
</optgroup>
</select>
</form>

form与textarea的结合

textarea标签可以进行多行输入,而input的type="text"只能进行单行输入

<form action="http://www.spdir.top"  method="POST">
<textarea name="word"></textarea>
</form>

a标签

 - 跳转

<a href="http://wwww.baidu.com">当前页面打开</a>

<a href="http://www.baidu.com" target="_blank">新的页面打开</a>

 - 锚

在跳转到的标签内使用id属性设置一个id,在a标签中使用href属性进行跳转

<!--锚-->
<a href="#i1">第一章</a>
<a href="#i2">第二章</a>
<a href="#i3">第三章</a> <div id="i1" style="height: 600px;">第一章内容</div>
<div id="i2" style="height: 600px;">第二章内容</div>
<div id="i3" style="height: 600px;">第三章内容</div>

img标签

用来引入图片

属性:src - 图片的地址

      title - 图片的标题

      alt - 当图片的地址找不到无法显示的时候,显示alt的内容

<img src="a.jpeg" title="头像" style="height: 300px; width: 200px;" alt="链接找不到显示"/>

列表标签

 无序列表

使用ul嵌套li标签

<!--无序-->
<ul>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
</ul>

有序列表

使用ol嵌套li标签

<!--有序-->
<ol>
<li>aaa</li>
<li>aaa</li>
<li>aaa</li>
</ol>

分组列表

使用dl嵌套dt(分组的名)标签,dt标签嵌套dd标签

<!--分组列表-->
<dl>
<dt>group 1</dt>
<dd>body 1</dd>
<dt>group 2</dt>
<dd>body 2</dd>
</dl>

表格标签

写法:

1) 简略写法

<table border="1">
<tr>
<th>主机名</th>
<th>端口</th>
</tr>
<tr>
<th>1.1.1.1</th>
<th>80</th>
</tr>
<tr>
<th>2.2.2.2</th>
<th>443</th>
</tr>
</table>

2)标准写法(需要写出表头thead和内容tbody的标签)

<table border="1px">
<thead>
<tr>
<th>主机名</th>
<th>端口</th>
</tr>
</thead>
<tbody>
<tr>
<th>1.1.1.1</th>
<th>80</th>
</tr>
<tr>
<th>2.2.2.2</th>
<th>443</th>
</tr>
</tbody>
</table>

合并单元格

colspan横向合并单元格,rowspan纵向合并单元格

    <table border="1">
<thead>
<tr>
<th>表头1</th>
<th>表头2</th>
<th>表头3</th>
</tr>
</thead>
<tbody>
<tr>
<th colspan="2" >1</th> <!-- 横向合并单元格 -->
<th>1</th>
</tr>
<tr>
<th rowspan="2">2</th> <!-- 纵向合并单元格 -->
<th>2</th>
<th>2</th>
</tr>
<tr>
<th>3</th>
<th>3</th>
</tr>
</tbody>
</table>

label标签

用于点击鼠标,使得关联的标签获取光标

<label for="username1">用户名:</label>
<input id="username1" type="text"/>

效果就是,点击用户名也可以在input框中进行输入

fieldest标签

<fieldset></fieldset>

可以实现一个这样的框框

嵌套 legend 标签可以实现

<fieldset>
<legend>登录</legend>
</fieldset>

那这个标签又有什么用呢,我们可以实现一个:如图的样子(样式虽然有些丑,但我们可以用css做修饰)

<fieldset>
<legend>登录</legend>
<label for="username2">用户名:</label>
<input id="username2" type="text"/>
<br/>
<label for="pwd">密码:</label>
<input id="pwd" type="password"/>
</fieldset>

video视频

提供了播放、暂停和音量控件来控制视频

control 属性供添加播放、暂停和音量控件

<video style="height: 300px; width: 300px;" controls>
<source src="a.mp4" type="video/mp4">
</video>

支持的视频格式:

MP4    video/mp4
WebM video/webm
Ogg video/ogg

audio音频

control 属性供添加播放、暂停和音量控件

<audio controls>
<source src="王建房%20-%20在人间.mp3" type="audio/mpeg">
</audio>

hr分割线

<hr />

更多

Font Awesome

IconFont

HTML知识点总结[部分]的更多相关文章

  1. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  2. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  3. UWP开发必备以及常用知识点总结

    一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...

  4. C#高级知识点&(ABP框架理论学习高级篇)——白金版

    前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...

  5. lucene 基础知识点

    部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...

  6. DoraCMS 源码知识点备注

    项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...

  7. atitit 商业项目常用模块技术知识点 v3 qc29

    atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...

  8. HTML5知识点总结

    HTML5知识点总结(一) 一.HTML新增元素 1.IE9版本以下支持HTML5的方法 <!--[if lt IE9]> <script src="http://cdn. ...

  9. JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

  10. Sqlserver中一直在用又经常被忽略的知识点一

    已经有快2个月没有更新博客了,实在是因为最近发生了太多的事情,辞了工作,在湘雅医院待了一个多月,然后又新换了工作...... 在平时的工作中,Sqlserver中许多知识点是经常用到的,但是有时候我们 ...

随机推荐

  1. Kubernetes学习之路(26)之kubeasz+ansible部署集群

    目录 1.环境说明 2.准备工作 3.分步骤安装 3.1.创建证书和安装准备 3.2.安装etcd集群 3.3.安装docker 3.4.安装master节点 3.5.安装node节点 3.6.部署集 ...

  2. 有一个IT男友是怎么样体验呢?

      前言:          一提到IT男,大家就会惯性的给他贴上无趣,情商低,屌丝,技术宅的的等标签.那么作为一个IT男的女友到底是什么样的体验呢? 礼物:         别人的男朋友送礼物,一般 ...

  3. 使用JWT来实现对API的授权访问

    目录 什么是JWT JWT的结构 Header Payload Signature 解码后的JWT JWT是怎样工作的 在JAVA里使用JWT 引入依赖 JWT Service 生成JWT 解码JWT ...

  4. 窥探ASP.Net MVC底层原理 实现跨越Session的分布式TempData

    1.问题的引出 我相信大家在项目中都使用过TempData,TempData是一个字典集合,一般用于两个请求之间临时缓存数据或者页面之间传递消息.也都知道TempData是用Session来实现的,既 ...

  5. eclipes个人配置

    设置字体:https://jingyan.baidu.com/article/f96699bb9442f3894e3c1b15.html general->appearance->colo ...

  6. WinRAR从入门到高级的操作技巧集合

    一.基础技巧 1.批量建立文件夹 如果在工作中,经常要建立很多相同文件夹结构(如在备份数据时).那可以把这个繁琐的工作让WinRAR完成:先在“资源管理器”中把多个文件夹结构建好(包括其下的子文件夹) ...

  7. Django的contenttypes

    这是一个django内置的表结构,为的就是通过两个字段让表和N张表创建FK关系. 比如说有两种不同课程,这两种课程都有价格周期和策略.如果最低级的则是给每个表创建一个价格策略.如果非要在同一个表内使用 ...

  8. java总结:字符串切割

    java中String.split()用法 在java.lang包中有String.split()方法,返回是一个数组.1.“.”和“|”都是转义字符,必须得加"\\"; 所以如果 ...

  9. Python之操作MySQL数据库

      一.操作步骤 1.导入pymysql模块 2.建立连接(ip.用户名.密码.数据库名.端口号.字符集.(自动提交参数)) 3.建立游标 4.执行sql语句 (4.需要提交的提交) 5.关闭游标 6 ...

  10. CGI、FAST-CGI、PHP-CGI、PHP-FPM的关系

    转自:https://www.awaimai.com/371.html 关于这一类的文章还有:https://zhuanlan.zhihu.com/p/20694204 在搭建 LAMP/LNMP 服 ...