zoukankan      html  css  js  c++  java
  • 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 -- 国际标准化组织
  • 相关阅读:
    Server 对象
    Response 对象
    bzoj 5252: [2018多省省队联测]林克卡特树
    bzoj 2167: 公交车站
    bzoj 5315: [Jsoi2018]防御网络
    bzoj 5319: [Jsoi2018]军训列队
    bzoj 4161: Shlw loves matrixI
    bzoj 4942: [Noi2017]整数
    bzoj 2648: SJY摆棋子
    kd-tree 小结
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/15203745.html
Copyright © 2011-2022 走看看