zoukankan      html  css  js  c++  java
  • 【Go】【Http】Go实现Http相关知识点

    Web Client Server

    几个概念

    概念 解释
    Request 用户请求的信息,用来解析用户的请求
    Response 服务器返回给Client的信息
    Conn 用户的每次请求链接
    Handler 处理请求和生成返回信息的处理逻辑
    • Multiplexer:server接受request的过程中,最重要的是router,即实现一个Multiplexer

      • 目的:为了找到处理器函数handler,handler将对request进行处理,并构建response。
      • Go中有内置的Multiplexer:DefaultServeMux
    • Handler函数: 具有func(w http.ResponseWriter, r *http.Requests)签名的函数

    • Handler处理器(函数):经过HandlerFunc结构包装的handler函数,它实现了ServeHTTP接口方法的函数。调用handler处理器的ServeHTTP方法时,即调用handler函数本身。

    • Handler对象:实现了Handler接口ServeHTTP方法的结构

      • type Handler interface {
            ServeHTTP(ResponseWriter, *Request)
        }
        

    HTTP包运行机制

    • image
      • 流程:
        1. Client
        2. Request
        3. Multiplexer(router)
        4. handler
        5. Response
        6. Client
    • func HandleFunc(pattern string, handler func(ResponseWriter, *Request))
      • 第一个参数指的是请求路径,第二个参数是一个函数类型,表示这个请求需要处理的事情。

    Go实现Http服务

    • 步骤
      • 首先注册路由
      • 然后创建服务并开启监听

    net/url

    • func QueryEscape

      func QueryEscape(s string) string
      
      • QueryEscape函数对s进行转码使之可以安全的用在URL查询里。

    Curl

    • curl [options] <url>
      
    • Headers

      • -H/--header     LINE        (H) # 添加请求头, 可添加多个 -H 参数, 
                                        # 参数格式: -H "NAME: VALUE"
         
        -A/--user-agen  STRING      (H) # 请求头的 User-Agent 字段
        -e/--referer    URL         (H) # 请求头的 Referer 字段
        -r/--range      RANGE       (H) # 请求头的 Range 字段
        -b/--cookie     STRING/FILE (H) # 请求头的 Cookie 字段, 以字符串的形式提供, 
                                        # 或从指定 cookie 文件中读取
         
        -c/--cookie-jar     FILE    (H) # 把响应头中的 cookie 保存到指定文件
         
        -D/--dump-header    FILE        # 把 headers 信息保存指定文件
        -I/--head                       # 只显示文档信息(只显示响应头)
        
    • Request Content

      • 执行命令,如果是HTTP,则是请求方法:GET, POST, PUT, DELETE等
      • FTP,FTP
  • 相关阅读:
    一个网站架构的变迁
    网络编程
    http协议篇
    第1篇 编程能力是什么
    django中的cookies和session机制
    django的认证与授权系统
    python的异常处理
    第0篇
    mysql优化和全局管理杂记
    k8s中pod的资源配置详解
  • 原文地址:https://www.cnblogs.com/xuwanwei/p/15160970.html
Copyright © 2011-2022 走看看