前言

explore  what is the root of  web. web的本质是什么?

 

当互联网发展的不是很火热的时候,大家普遍使用的是C/S架构.例如我们下载的QQ、网易云乐音。

优势:可定制空间大,用户体验较好

劣势:需要额外下载客户端到你的设备(安全性)、客户端开发成功高、一旦添加新的新功能就需要客户端升级。(使用EF就是这种体验不断的更新客户端APP)

 

当浏览器发展比较成熟、普遍后出现了B/S架构。B指定是browser

优势:不需要开发客户端、用户设备只需要1个浏览器就ok

劣势:无法扩展更多的新功能

 

html是什么?

在B/S架构,server服务端和browser之间使用超文本传输(HTTP)协议进行交互。

HTTP协议规定了:

Browser应该怎么请求Server

Server应该使用什么数据格式到Browser

Browser应该怎么渲染.html文件

 

传输过程

经过TCP三次握手建立1个TCP连接,开始http

browser向server发起 post/get/put...请求

服务端响应浏览器的请求,发送html格式的网页代码给浏览器;

客户端的浏览器接受到html网页代码后,渲染出效果给用户看。

browser端和server端通过socket,循环这个请求和响应的过程,以此建立服务端于用户之间的交互;

browser和server之间的http传输结束,经过四次挥手结束下面TCP连接。

 

超文本标记语言(Hypertext Markup Language,HTML)通过标签语言来标记要显示的网页中的各个部分。一套规则,浏览器认识的规则。

ps:所以HTML不是编程语言,只是按照规定的格式描述你想要描述的内容,只有数据,没有算法逻辑。

当browser接收服务端发送来的html之后,

会按照从左到右 从上到下的 顺序渲染网页文件,然后根据标记符解释和显示内容。但需要注意的是,对于不同的浏览器,对同一标签可能会有不完全相同的解释(这就是browser兼容性问题),网页文件以.html 或 .htm结尾。

所以我们学习的前端内容:都是围绕着使用 html/CSS/js写一个漂亮的网页,当用户的浏览器 请求时我们时,响应这个漂亮的页面给用户的浏览器,再由浏览器渲染出效果呈现给用户;

 

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
)

func homepage(response http.ResponseWriter, request *http.Request)  {
	data,err:=ioutil.ReadFile("./templates/homepage.html")
	if err != nil {
		fmt.Printf("Do not find such file:%s","./templates/homepage.html")
		return
	}
	number,err:=response.Write(data)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println("发送数据",number)

	
}

func main() {
	http.HandleFunc("/",homepage)
	//启动服务
	err:=http.ListenAndServe("127.0.0.1:8888",nil)
	if err != nil {
		fmt.Printf("请检查address是否合法?:",err)
		return
	}

}

  

html结构

<!DOCTYPE html>
<html lang="en">
<head>
    <!--字符编码  -->
    <meta charset="UTF-8">
    <!-- 标题-->
    <title>Title</title>
</head>
<body>

</body>
</html>
  • <!DOCTYPE html> 声明该html页面,使用的编写规范;
  • <html></html>是文档的开始标记和结束标记。此元素告诉浏览器其自身是一个 HTML 文档,在它们之间是文档的头部<head>和主体<body>。
  • <head></head>元素出现在文档的开头部分。<head>与</head>之间的内容不会在浏览器的文档窗口显示,但是其间的元素有特殊重要的意义。
  • <title></title>定义网页标题,在浏览器标题栏显示。 
  • <body></body>之间的文本是可见的网页主体内容

 

html标签的格式

标签的语法:

<标签名 属性1=“属性值1” 属性2=“属性值2”……>内容部分</标签名>

<标签名 属性1=“属性值1” 属性2=“属性值2”…… />

 

html的基本标签 

HTML标签根据其在浏览器中显示的特征分为:

块级标签:独占一行

内联标签:根据内容大小而定

div标签:没有任何标记效果,是一张白纸。

 

 

<!DOCTYPE>标签

<!DOCTYPE> 此标签可告知浏览器 该HTML文档使用哪种 HTML 或 XHTML 规范

作用:声明文档的解析类型(document.compatMode),避免浏览器的怪异模式。

document.compatMode:

  1. BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。
  2. CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。

这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat

 

<head>标签

用于描述和网页相关的源数据信息

<meta>标签

META标签用来描述一个HTML网页文档的属性,例如作者、日期和时间、网页描述、关键词、页面刷新等。 

前端基础之html常用标签
<head>
    <!--字符编码-->
    <meta charset="UTF-8">
    <!--浏览器标签页显示的标题-->
    <title>IT运维平台</title>
    <!--刷新当前网页, 2秒钟之后跳转到https://www.cnblogs.com/sss4/p/6863361.html -->
   <!--<meta http-equiv="refresh" content="2;URL=https://www.cnblogs.com/sss4/p/6863361.html"> -->
    <!--兼容IE浏览器-->
    <meta http-equiv="x-ua-compatible" content="IE=edge">
    <!--在移动端打开以屏幕大小打开 -->
    <meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1">
    <!--搜素引擎SEO关键词优化 -->
    <meta name="keywords" content="python,golang,html,css,javescript,上门,服务">
    <!--在搜素引擎排名之后的描述信息 -->
    <meta name="description" content="我来自........我擅长。。。。。。。">


</head>
meta标签

相关文章: