http

一、http协议

超文本传输协议(HTTP,Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议,所有的wWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。
在这里插入图片描述

Request包分为3部分

:

第一部分叫Request line(请求行)
第二部分叫Request header(请求头)
第三部分是body(主体)。
HTTP协议定义了很多与服务器交互的请求方法,最基本的有4种,分别是GET,POST,PUT,DELETE。一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,增,改,删4个操作。我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息

响应状态码

1XX 提示信息 - 表示请求已被成功接收,继续处理
2XX 成功 - 表示请求已被成功接收,理解,接受
3XX 重定向 - 要完成请求必须进行更进一步的处理
4XX 客户端错误 - 请求有语法错误或请求无法实现
5XX 服务器端错误 - 服务器未能实现合法的请求
常见的状态码

200:请求成功,浏览器会把响应体内容(通常是 html)显示在浏览器中;
404:请求的资源没有找到,说明客户端错误的请求了不存在的资源;
500:请求资源找到了,但服务器内部出现了错误;
302:重定向,当响应码为 302 时,表示服务器要求浏览器重新再发一个请求,服务器会发送一个响应头 Location,它指定了新请求的 URL 地址;

http包建立Web服务器

package main

package main

import (
	"fmt"
	"net/http"
)

func ServerHttp(w http.ResponseWriter,r *http.Request){
	fmt.Fprintln(w,"通过handleFunc启动一个http服务") //这个写入到w的是输出到客户端的
}

func main(){
	http.HandleFunc("/",ServerHttp) //设置访问的路由
	http.ListenAndServe(":8080",nil) // //设置监听的端口
}

在这里插入图片描述

通过自定义类型启动一个http服务

package main

import (
	"fmt"
	"net/http"
)

func ServerHttp(w http.ResponseWriter,r *http.Request){
	fmt.Fprintln(w,"通过handleFunc启动一个http服务") //这个写入到w的是输出到客户端的
}

type DefineServerMux struct {}

func (dsm * DefineServerMux)ServeHTTP(w http.ResponseWriter,r *http.Request){
	fmt.Fprintln(w,"通过自定义类型启动一个http服务")
}
func main(){
	http.HandleFunc("/",ServerHttp) //设置访问的路由
	defineServerMux := DefineServerMux{}
	http.Handle("/getUserinfo",&defineServerMux)
	http.ListenAndServe(":8080",nil) // //设置监听的端口
}

在这里插入图片描述

http请求获取url参数分析

package main

import (
	"fmt"
	"net/http"
	"net/url"
)

func ServerHttp(w http.ResponseWriter,r *http.Request){
//http://localhost:8080/getUrl?query=lin&name=xihong
	fmt.Fprintln(w,r.URL.RawQuery)
	fmt.Fprintln(w,r.URL.Host)
	fmt.Fprintln(w,r.URL.Path)
	rawquery := r.URL.RawQuery
	va,_ := url.ParseQuery(rawquery)
	fmt.Fprintln(w,"获取url当中key为name的值",va.Get("name"))
	fmt.Fprintln(w,"通过handleFunc启动一个http服务") //这个写入到w的是输出到客户端的
}

type DefineServerMux struct {}

func (dsm * DefineServerMux)ServeHTTP(w http.ResponseWriter,r *http.Request){
	fmt.Fprintln(w,"通过自定义类型启动一个http服务")
}
func main(){
	http.HandleFunc("/getUrl",ServerHttp) //设置访问的路由
	defineServerMux := DefineServerMux{}
	http.Handle("/getUserinfo",&defineServerMux)
	http.ListenAndServe(":8080",nil) // //设置监听的端口
}


在这里插入图片描述

http请求获取头header参数分析与实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值