应用层协议HTTP

发布于:2025-04-01 ⋅ 阅读:(31) ⋅ 点赞:(0)

目录

一、认识URL

二、HTTP协议的请求/响应格式

三、HTTP协议中的详细属性

1.请求/响应报头

2.请求方法

3.状态码

(1)基本状态码 

(2)重定向状态码


一、认识URL

平时俗称的网址就是URL,也叫统一资源定位符

例如QQ官网Windows版本的下载网址:https://im.qq.com/pcqq/index.shtm

现在使用的协议都是https,但是不影响我们以它为例讲解URL:

  • https是使用的应用层协议
  • im.qq.com是域名,会通过DNS自动转换为IP地址
  • /pcqq/index.shtm是文件路径,所有的资源都存放在服务器中,根据文件路径就可以确认所查找的文件资源在服务器的具体位置
  • 端口号,协议与端口号是强关联的,使用http协议的服务器默认端口号为80,使用https协议的服务器默认端口号为443

有了IP地址和端口号,以及文件路径,就可以在互联网中找到指定服务器中的指定资源了

二、HTTP协议的请求/响应格式

请求格式:

  • 请求行:
  1. 请求方法:GET、POST、HEAD、DELETE......
  2. URI:一般是URL中所访问资源的路径,也可能是完整的URL
  3. HTTP版本:http/1.0、http/1.1、http/2.0
  • 请求报头:Key: Value,一般是本次请求的一些属性,或者发起请求方的一些属性
  • 空行:区分报头和正文(空行之前的都是报头、空行之后的是正文)
  • 请求正文:可有可无

 响应格式:

  • 状态行:
  1. HTTP版本:必须与请求格式中的版本对应(http/1.0、http/1.1、http/2.0)
  2. 状态码:如、100,200,301,304,404,500等
  3. 状态码描述:对于状态码的解释
  • 响应报头:包含内容控制头、连接控制头、缓存控制头、安全相关头、重定向头
  • 空行:区分响应报头和响应正文
  • 响应正文:请求方所请求的资源内容,例如HTML网页、图片、音频等

三、HTTP协议中的详细属性

1.请求/响应报头
  • Content-Type:请求/响应资源的类型,如text/html(HTML文档),video/mp4(MP4视频),image/gif(GIF图片),text/plain(纯文本)......
  • Content-Length:正文的长度
  • Connection:控制连接状态,即持久连接和非持久连接。持久连接允许客户端和服务器在请求/响应完成后不立即关闭 TCP 连接,以便在同一个连接上发送多个请求和接收多个响应。在 HTTP/1.1 协议中,默认使用持久连接。在 HTTP/1.0 协议中,默认连接是非持久的。Connection: keep-alive:表示希望保持连接以复用 TCP 连接。                              Connection: close:表示请求/响应完成后,应该关闭 TCP 连接。
  • Host:客户端告知服务端请求的资源在哪个主机的哪个端口上(客户端访问的服务端可能会将资源存放在其他服务器上,当前服务器再做二次请求)
  • User-Agent:声明用户所使用的操作系统以及浏览器版本信息
  • Referer:表明当前页面是从哪个页面跳转过来的(服务器中存在多个HTML页面,可以相互跳转)
  • Location:存放的是新的URL,配合状态码3xx和201使用,当服务器返回3xx状态码​(如301、302、307等)时,Location头部指定客户端应跳转的新URL;当服务器返回201状态码时,表明服务器正在创建新资源,Location可提供新资源的访问路径
  • Cookie:服务器通过Set-Cookie头部向客户端(浏览器)写入数据,客户端后续请求通过Cookie头部携带该数据。通常用于实现会话(session)的功能
2.请求方法

最常用的是GET和POST方法

  • GET:用于请求URL中的指定资源;或者通过URL向服务器传递参数
  • POST:用于向服务器提交数据,适用于表单提交、文件上传、触发服务端操作等场景;或者通过应答的正文向服务器传递参数

3.状态码

(1)基本状态码 
状态码 含义 应用样例
100 Continue 上传大文件时, 服务器告诉客户端可以继续上传
200 OK 访问网站首页, 服务器返回网页内容
201 Created 发布新文章, 服务器返回文章创建成功的信息
204 No Content 删除文章后, 服务器返回“无内容”表示操作成功
301 MovedPermanently 网站换域名后, 自动跳转到新域名; 搜索引擎更新网站链接时使用
302      Found 或 See Other 用户登录成功后, 重定向到用户首页
304 Not Modified 浏览器缓存机制, 对未修改的资源返回304 状态码
400 Bad Request 填写表单时, 格式不正确导致提交失败
401 Unauthorized 访问需要登录的页面时, 未登录或认证失败
403 Forbidden 尝试访问你没有权限查看的页面
404 Not Found 访问不存在的网页链接
500 Internal ServerError 服务器崩溃或数据库错误导致页面无法加载
502 Bad Gateway 使用代理服务器时, 代理服务器无法从上游服务器获取有效响应
503 Service Unavailable 服务器维护或过载, 暂时无法处理请求
(2)重定向状态码
状态码 含义 是否为临时重定向 应用样例
301 MovedPermanently 否(永久重定向) 网站换域名后, 自动跳转到新域名;搜索引擎更新网站链接时使用
302 Found 或 See Other 是(临时重定向) 用户登录成功后,重定向到用户首页
307 TemporaryRedirect 是(临时重定向) 临时重定向资源到新的位置(较少使用)
308 PermanentRedirect 否(永久重定         向) 永久重定向资源到新的位置(较少使用)

HTTP状态码301和302都要依赖报头属性Location:

  • 301(永久重定向):当服务器返回 HTTP 301 状态码时, 表示请求的资源已经被永久移动到新的位置。服务器会在响应中添加一个 Location 头部, 用于指定资源的新位置。 这个 Location 头部包含了新的 URL 地址, 浏览器会自动重定向到该地址。
  • 302(临时重定向):当服务器返回 HTTP 302 状态码时, 表示请求的资源临时被移动到新的位置。服务器也会在响应中添加一个 Location 头部来指定资源的新位置。 浏览器会暂时使用新的 URL 进行后续的请求, 但不会缓存这个重定向。

网站公告

今日签到

点亮在社区的每一天
去签到