笔记篇:走进HTTP|青训营

91 阅读7分钟

Protocol

  • 网络协议是指在计算机网络中进行通信和数据交换时,各个设备和系统之间遵循的规则和约定,可以使得不同设备和系统能够相互协作和交换信息。

    • 最常见的网络协议是TCP/IP协议,它是互联网上数据通信的基础。TCP/IP协议包括一系列的协议,如IP协议负责网络定位和寻址,TCP协议负责可靠的数据传输。

      • TCPTransmission Control Protocol)提供了面向连接的传输服务。它使用三次握手的机制来建立连接,确保数据传输的可靠性和完整性。

      • IP Internet Protocol 用于定义数据包的格式寻址方式,使得互联网中的设备能够相互识别和交互。IP地址是IP协议中使用的一种标识符,用于唯一标识网络中的设备。它由一系列的数字组成,用于标识设备的位置和网络接口。IP地址分为两个版本:IPv4Internet Protocol version 4)和IPv6Internet Protocol version 6)。IPv4地址由四组由点分隔的数字表示,而IPv6地址由八组由冒号分隔的十六进制字符表示。

    • HTTPHypertext Transfer Protocol)是一种应用层协议,用于在Web上传输超文本和其他资源。

      • 超文本(Hypertext)是一种文本的扩展形式,通过超链接(或超文本链接)将文本之间进行关联。
    • SOCKS5Socket Secure 5)是一种网络协议,用于客户端与服务器之间进行通信。SOCKS5 是一种网络协议,允许客户端通过代理服务器进行安全的数据传输和访问互联网。

    • JSON不是网络协议,而是一种数据格式和编码方式。虽然JSON本身不是一个网络协议,但它经常与网络协议一起使用。

代理服务器

  • 代理服务器是一种位于客户端和目标服务器之间的中介服务器。当客户端发送请求时,请求将经过代理服务器传递给目标服务器,然后代理服务器将返回的响应传递回客户端。代理服务器就是包括平时说的翻墙和安全过滤呢。
  • VPNVirtual Private Network,虚拟私人网络)可以被看作是一种代理服务器。它允许用户通过加密和隧道技术在公共网络上建立安全连接,以访问互联网和其他网络资源。
  • NFCNear Field Communication,近场通信)是一种短距离无线通信技术。它允许两个设备在非接触的情况下进行数据交换,通常距离不超过几厘米。

Domain Name

  • DNS(Domain Name System)是域名系统的缩写,它是互联网中用来将域名转换为对应IP地址的分布式数据库系统。简单来说,DNS解析将人类可读的域名转换为计算机可理解的IP地址。

    • 分布 式系统是由多个独立计算机通过网络连接而形成的系统,这些计算机协同工作以实现共同的目标。在分布式系统中,这些计算机被称为节点。节点之间通过网络通信协同工作,以实现分布式计算、存储和处理等任务。节点之间通过网络通信协同工作,以实现分布式计算、存储和处理等任务。
  • 当用户在浏览器中输入一个域名时,DNS系统将把域名转换为对应的IP地址,然后建立与该IP地址的网络通信。


HTTP简介

  • 抓包:抓包就是通过工具监听网络传输数据的过程。可以想象成在网络中放置一个监听器,可以捕获并记录经过网络的数据包。这些数据包包含了发送者和接收者的信息,以及传输的内容。通过分析这些数据包,我们可以了解到网络中正在发生的事情,比如哪些应用程序正在通信、数据是否正常传输等等。
  • HTTP 是一个基于 TCP/IP 通信协议来传递数据。HTTPS 协议是 HyperText Transfer Protocol Secure(超文本传输安全协议)的缩写,是一种通过计算机网络进行安全通信的传输协议。

image.png

  • "web" 和 "万维网" 是可以互相替代使用的。WEB服务器是指在网络中运行并提供WEB服务的服务器。它是网络的核心组件之一,负责接收来自客户端的请求,并向客户端发送相应的WEB页面或资源。
  • 请求行/状态行 -方法 URl 版本/版本 状态码 状态描述- 请求头/响应头 请求体/响应体

image.png

协议内容

HTTP请求方法---见文章尾部

HTTP的状态码

  • HTTP 状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型。响应分为五类:信息响应(100–199),成功响应(200–299),重定向(300–399),客户端错误(400–499)和服务器错误 (500–599)。
  • 常见状态码:
    1. 200 - 请求成功
    2. 301 - 资源(网页等)被永久转移到其它URL
    3. 404 - 请求的资源(网页等)不存在
    4. 500 - 内部服务器错误
package main

import (

	" code.byted.org/middleware/ hertz/ pkg/ app "

	"code.byted.org/middleware/ hertz/ pkg/ app/ server"

	"context"

)

  

func main() {

	h := server.New()

	h.POST(" /sis ", func(c context.Context, ctx 					*app.RequestContext) {ctx.Data(200, "text/plain; charset=utf-8", []byte("OK"))
})

	h.Spin()

}

计算机网路通信的分层设计

image.png

image.png

  1. 应用层为应用软件提供接口,使用特定协议。
  2. 表示层数据的解码和编码、加密和解密、压缩和解压缩
  3. 会话层负责建立、管理和终止表示层实体之间的会话连接
  4. 传输层负责建立端到端的连接
  5. 网络层为网络设备提供逻辑地址
    • 路由器是一种网络设备,其主要作用是将数据包从一个网络转发到另一个网络。它充当网络交通指挥官,用于在不同的网络之间进行数据交互和路由选择
  6. 数据链路层 数据链路层处理的数据单位是数据帧(frame)。它将数据分组成帧,并添加帧开始和结束标识
    • 物理层处理的数据单位是比特(bit)。它将比特流划分为连续的数据帧以进行传输。
  • 谐音记忆:印表会传往树屋(打印好的表格会传往树屋,是不是一下子就记住了 ^▽^)
  • 只有四层体系结构的TCP/IP协议,与有七层体系结构的OSI相比要简单了不少,也正是这样,TCP/IP协议在实际的应用中效率更高,成本更低
  • 上层依赖于下层,下层为上层提供服务
  • 每一层都把上层的协议包当成数据部分,加上自己的协议头部,组成自己的协议包

参考---OSI七层网络模型

序号方法描述
1GET请求指定的页面信息,并返回实体主体。
2HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容。
5DELETE请求服务器删除指定的页面。
6CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7OPTIONS 允许客户端查看服务器的性能。
8TRACE回显服务器收到的请求,主要用于测试或诊断。
9PATCH是对 PUT 方法的补充,用来对已知资源进行局部更新 。