【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
原文地址:https://www.cnblogs.com/xuwanwei/p/15160970.html