当前位置: 首页> 游戏> 网游 > 住房与城乡建设部_b2b代表平台有哪些_随机关键词生成器_推广产品的软文怎么写

住房与城乡建设部_b2b代表平台有哪些_随机关键词生成器_推广产品的软文怎么写

时间:2025/7/9 12:25:57来源:https://blog.csdn.net/2301_78611726/article/details/142413689 浏览次数:1次
住房与城乡建设部_b2b代表平台有哪些_随机关键词生成器_推广产品的软文怎么写

目录

  • HTTP协议
  • 认识URL
  • HTTP协议的请求
    • 如果我们想获得请求报文的完整内容,怎么办?
  • HTTP协议的响应
  • HTTP的方法
    • GETvsPOST
  • HTTP的状态码
  • HTTP常见Header
  • HTTP版本
  • 实现一个简单的HTTP服务器

HTTP协议

HTTP协议是一种超文本传输协议,它定义了客户端与服务端之间如何进行数据传输进而通信的协议,HTTP是一种可以用来解析和传输超文本的协议,

认识URL

随便找一个网址我们看一下对应的URL的格式是怎样的
在这里插入图片描述
对于协议方案名,我们这里学习的是http,但我们平常使用的都是https,但两者大同小异,https使用起来更安全。
对于域名,浏览器后台会自动给转换为ip地址,找到相应服务器,加上后面的带层次的文件路径,就能唯一标识网络上唯一一台主机上的唯一的文件资源,即互联网上的唯一文件资源。
域名后面其实还有端口号,但端口号跟协议名称是强关联的,我们不需要看到,后台会自动拼接。
对于?后面的一些字符串我们不需要知道,这些都是编码格式。

HTTP协议的请求

在这里插入图片描述

  • 首行(请求行):方法 + url + HTTP版本
  • Header(请求报头):请求的属性,每组属性是":"分隔的kv键值对,每组属性用\r\n分开,遇到空行表示Header部分结束。
  • Body行(请求正文):Body后面跟的都是Body,Body允许为空字符串,如果Body存在,则在Header中会有一个Content-Length 的属性来标识Body的长度。

如果我们想获得请求报文的完整内容,怎么办?

假如我们从网络中截获一段网络报文,我们如何知道这串报文是一个完整的请求报文呢?
我们可以按照换行符为分隔符,如果拿到空行,就说明我们已经拿到了请求报头部分,再从请求报头中拿到Content-Length属性就能知道Body数据的大小了,从而就能拿到完整的报文。
下面是一个截获的报文
在这里插入图片描述
上面就是一个GET请求的报文。

HTTP协议的响应

在这里插入图片描述

  • 首行(状态行):版本号 + 状态码 + 状态码描述
  • Header(响应报头):回应的属性,每组属性是":"分隔的kv键值对,每组属性用\r\n分开,遇到空行表示Header部分结束。
  • Body(响应正文): 空行后面的内容都是 Body. Body 允许为空字符串. 如果 Body 存在, 则在Header 中会有一个 Content-Length 属性来标识 Body 的长度; 如果服务器返回了一个 html 页面, 那么 html 页面内容就是在 body 中.

应答响应格式
在这里插入图片描述

HTTP的方法

HTTP的方法都是请求时使用,HTTP的方法众多
在这里插入图片描述
其中GET和POST是重点理解的两个方法,其他方法不常用,了解即可。

GETvsPOST

我们在进行登陆时,使用的账号密码就可以作为参数进行传递。

  1. GET一般用来获取静态资源(例如html),也可以通过URL来向服务器传递参数。
  2. POST可以通过http request的正文来进行参数传递。
  3. URL传递参数,参数的体量一定不大,正文可以很大。
  4. POST方法比GET方法传参更私密,但都不安全!所以需要对http的参数部分进行加密,所以就有了https。

HTTP的状态码

在这里插入图片描述
最常见的状态码, 比如 200(OK), 404(Not Found), 403(Forbidden), 302(Redirect, 重定向), 504(Bad Gateway)
在这里插入图片描述
在这里插入图片描述
理解重定向:

  • 永久重定向:即状态码为301,表示请求的资源已经被永久的移动到新的位置,在这种情况下,服务器会在响应中添加一个Location头部,用于指定资源的新位置,这个Location包含了新的URL地址,以后浏览器会自动重定向到指定的地址。
  • 临时重定向:即状态码为302,表示请求的资源被暂时移动到新的位置,同样的,服务器会在响应中添加一个Location头部,用于暂时指定资源的新位置,浏览器会使用新的URL来重定向指定的地址,但不会缓存这个重定向。
  • 总之:无论是 HTTP 301 还是 HTTP 302 重定向, 都需要依赖 Location 选项来指定资源的新位置。 这个 Location 选项是一个标准的 HTTP 响应头部, 用于告诉浏览器应该将请求重定向到哪个新的 URL 地址。

HTTP常见Header

  • Content-Type: 数据类型(text/html 等)
  • Content-Length: Body 的长度
  • Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
  • User-Agent: 声明用户的操作系统和浏览器版本信息;
  • referer: 当前页面是从哪个页面跳转过来的;
  • Location: 搭配 3xx 状态码使用, 告诉客户端接下来要去哪里访问;
  • Cookie: 用于在客户端存储少量信息(比如存储账号密码,使得后续再次进入无需登录). 通常用于实现会话(session)的功能;
  • connection: 用于控制和管理客户端与服务器之间的连接状态。
  • Connection: keep-alive:表示希望保持连接以复用 TCP 连接(长连接)
  • Connection: close:表示请求/响应完成后,应该关闭 TCP 连接(短连接)

HTTP/1.1: 在 HTTP/1.1 协议中, 默认使用持久连接。 当客户端和服务器都不明确指定关闭连接时, 连接将保持打开状态, 以便后续的请求和响应可以复用同一个连接,而HTTP/1.0: 在 HTTP/1.0 协议中, 默认连接是非持久的。 如果希望在 HTTP/1.0上实现持久连接, 需要在请求头中显式设置 Connection: keep-alive。

HTTP版本

  • HTTP/0.9:仅支持GET请求,无请求与响应的报头,仅支持纯文本传输。
  • HTTP/1.0:引入POST和HEAD方法,请求和响应头信息,支持多种数据格式,支持缓存、状态码、字符集等。
  • HTTP/1.1:在1.0基础上增加了长连接、管道化、缓存控制。
  • HTTP/2.0:多路复用、二进制帧格式、头部压缩、服务器推送等功能的引入。
  • HTTP/3.0:使用 QUIC 协议替代 TCP 协议, 基于 UDP 构建的多路复用传输协议,减少了 TCP 三次握手及 TLS 握手时间, 提高了连接建立速度,解决了 TCP 中的线头阻塞问题, 提高了数据传输效率。

实现一个简单的HTTP服务器

我的gitee仓库点击这里有源码

关键字:住房与城乡建设部_b2b代表平台有哪些_随机关键词生成器_推广产品的软文怎么写

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: