http协议基础

1. 网络7层模型

OSI -- Open System Interconnection

背景: 制定的一个用于计算机或通信系统间互联的标准体系
image

2. 网络5层模型

image

3. http发展历史

  • Http 0.9 -- 只有一个Get方法,没有head描叙数据信息
  • Http 1.0 -- 新增POST DELETE PUT HEAD 等方法 + header部分 + status code(服务端处理该请求响应的状态)
  • Http 1.1 -- 长连接 + pipeline(可以同时多个请求,但串行处理) + host
  • Http 2.0 -- 数据以二进制发送,压缩头部与服务器主动推送,同一个连接里发送多个请求可以并行处理

4. Http请求原理

  • http请求是建立在TCP连接之上的

5. URL

Uniform Resoure Locator -- 同一资源定位符
http://ip:port/path?query=string#hash

  • ip -- 服务器主机IP地址或对应的域名
  • Port -- 提供Web服务程序监听端口
  • /path -- 资源路径 -- restful风格中是名词 -- 类似文件系统目录结构
  • ?query=string& -- query string GET方法使用的查询参数
  • hash -- 锚点 -- 浏览器窗口定位到页面的某个区域

6. 报文

  • 请求报文
    image
    • Method 请求的方法 -- restful语义:
      1. GET -- 查询
      2. POST -- 新增
      3. PUT -- 修改多个记录
      4. PATCH -- 修改单个记录
      5. DELETE -- 删除记录
  • 响应报文
    image
    • Http code -- 定义服务器对请求处理的结果
  1. Demo
package main

import (
   "log"
   "net/http"
)

func main() {
   // 定义路由
   http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
      n, err := w.Write([]byte("ok"))
      if err != nil {
         log.Println(err)
      }
      log.Println(n)
   })

   // 启动http服务
   err := http.ListenAndServe(":8888", nil)
   if err != nil {
      log.Fatalln(err)
   }
}
  • ISO -- 国际标准化组织
posted @ 2021-08-29 21:43  梦_鱼  阅读(39)  评论(0编辑  收藏  举报