网络基础(二)应用层与http协议详解

应用层

应用层负责应用程序之间的数据沟通。

http协议

应用层的协议都是自定制协议,当某些协议用的场景多了,就成了知名协议,如http
http底层用的是tcp协议,用的是请求响应机制
http也需要向上交付

http的请求分为三或四部分:前三部分都是按行陈列。

  • 第一行:请求行(首行);由空格作为分割符,分为了三个部分 [方法] + [url] + [版本]
  • 第二行到空行之前:请求报头(头部),报头格式以一个个的键值对组成 name : value ,每一个键值对之间以\r\n间隔

载荷的长度由报头的content-Length属性的值显示。
Content-Type: 数据类型(text/html等)
Referer表示当前请求是由那个页面发起的,能够进行流量统计。
Accept-Encoding表示可接受的压缩格式。
Cookie表示用户登陆信息的保存
location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问
User-Agent: 声明用户的操作系统和浏览器版本信息

  • 第三部分是空行:\r\n
  • 第四部分是请求的正文。

http的请求方法有get方法,get没有正文,提交的数据在URL中,获取资源安全性低。
post方法放在正文,提交的是表单数据,安全性也更高,传参长度无限制。
请求方法有:GET POST HEAD OPTIONS DELETE等
因此http是以空行分离报头和载荷的

http的响应分为四部分

  • 第一部分:第一行为状态行,用空格作为分割符,分为了三部分: [版本号] + [状态码] + [状态码解释]
  • 第二部分:第二行到空行之前叫做响应报头,由一个个的键值对组成

Transfer-Encoding:chunked表示传输的方式是不指定长度

  • 第三部分:空行
  • 第四部分:有效载荷/响应正文

http特点:CS模型的,无连接,无状态,简单快速,可处理各种数据类型。

认识URL

我们俗称的网址,专业名词为同一资源定位符的组成是:协议方案://登陆用户名:密码@服务器地址:服务器端口号/带层次的文件路径?查询字符串#片段标识符

查询字符串中不能出现特殊字符,若包含特殊字符会利用urlencode/urldecode进行转义。将一个字节的前四位和后4位转换为16进制数据,然后合并一起显示,使再用%标识是经过url编码的字符
http协议绑定的端口号为:80 ,一般在url中是隐藏的,默认是就80
https绑定的端口号是:443
mysql绑定的端口号是:3306

http是一个明文传输,传输层使用tcp协议。

hhtps:在网络中发送http请求时,都会对报文进行加密,在传输层和应用层之间有加密层,目前我们应用的加密是SSL。因此只有发送方的应用层,传输方的应用层能够看到原始数据。

http状态码
  • 1XXX:信息性状态码:接收的请求正在处理
  • 2XX:成功状态码:请求正常处理完毕;典型状态码:200
  • 3XX:重定向状态码:需要进行附加操作以完成请求
  • 4XX:客户端错误状态码:服务器无法处理请求;典型状态码:404
  • 5XX:服务器错误状态吗:服务器处理请求出错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值