HTTP和HTTPS详解

HTTP协议

HTTP处于TCP/IP五层协议栈的应用层,HTTP协议在传输层呢个是基于TCP的(详细的说,HTTP/1 HTTP/2是基于TCP,最新版本HTTP/3是基于UDP,但是当下互联网绝大部分都是HTTP/1.1)
应用层协议则是站在程序应用的角度,要对传输的数据进行具体的使用。

协议格式:数据具体是怎么组织的。
HTTP是一个文本格式的协议(不需要去理解具体的二进制位,而只是理解文本的格式即可)

HTTP请求

在这里插入图片描述
在这里插入图片描述

1.组成

请求分成4各部分

  1. 请求行(首行),包含三个部分 1)HTTP的方法,方法大概描述了这个请求想干啥,GET的意思就是想从服务器获取到某个东西 2)URL,描述了要访问的网络上的资源具体是在哪 3)版本,HTTP/1.1表示当前使用的HTTP的版本是1.1(1.1是当下最主流的版本,还可能是1.0/2/3)
  2. 请求头(header),包含了很多行,每一行都是一个键值对,键和值之间用:,空格来分割。这里的键值对个数是不固定的(有可能多,也有可能会少),不用的键和值标识的含义也有不同。
  3. 空行 相当于请求头的结束标记,类似于 链表的 null
  4. 请求正文(body) 可选的不一定有

详解
1)URL

网络上唯一资源的地址符,既要明确主机是谁,又要明确是主机上的那个资源

在这里插入图片描述

  • 协议方案名:描述了当前这个URL是给那个协议来使用的,http://给HTTP用的,https://给HTTPS用的,jdbc:mysql://给jdbc:mysql使用的
  • 服务器地址:当前要访问的主机是啥,这里可以是一个IP地址也可以是域名
  • 服务器端口号:当前要访问的主机上的那个应用程序(端口号大部分情况下是省略的),省略的时候不是说没有,而是说浏览器会自动赋予一个默认值。对于HTTP开头的URL就会使用80端口作为默认值,对于HTTPS开头的URL就会使用443端口作为默认值。
  • 带层次的文件路径:描述了电脑前要访问的服务器的资源是啥。虽然请求中的URL写的是一个文件路径,但是不一定是服务器就真的存在一个对应的文件,这个文件可能是一个真实的在磁盘上存在的文件,也可能是虚拟的有服务器代码构造的动态数据。
  • 查询字符串:本质上是浏览器/服务器,给服务器传递自定义的信息,相当于对获取到的资源提出了进一步的要求,查询字符串的内容本质上也是键值对结构,完全是程序员自己定义的,查询字符串和路径之间使用?来分割。
  • 片段标识符:描述了要访问当前html页面的中的具体的字部分,能够控制浏
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值