从头看起学会Linux-2

在学习之前呢推荐大家一个软件,可以进行网络通信抓包,方便学习,链接奉上;

链接:https://pan.baidu.com/s/13XSTzHja7rsL_J-nbajMAA 提取码:by9b

HTTP协议格式

1.首行 描述本次请求或者响应的关键信息,又因为服务端和操作端分为响应首行和请求首行;

2.头部 针对本次请求或相应的细节信息;

3.空行 间隔头部与正文

4.正文 正文内容

请求首行分析
首行内容有三大信息,请求方法、URL、协议版本;

其中请求方法多样,如下
在这里插入图片描述URL指唯一资源定位,也就是请求资源路径

协议版本有如下几个版本介绍一下,按时间从前往后,还是画个图吧;在这里插入图片描述
响应首行分析

类似于请求首行,不过稍有区别,三部分依次是协议版本,响应状态码,状态码描述;

协议版本,上述有描写;

响应状态码,指服务端向客户端反应本次请求的处理结果状态,大致分为五类,1xx/2xx/3xx/4xx/5xx;大致记忆可分为1xx描述性信息,2xx为正确处理信息的反馈,3xx表示重定向,4xx表示客户端错误,5xx表示服务端错误;如果想要更加深入的了解,可以点击

https://www.cnblogs.com/okcy/p/11376068.html

状态码描述, 按照状态码,每个状态码都有其指定的状态描述信息,当然,其描述信息也可以自定义;

提问:自定义的状态码会和官方状态码冲突嘛?

回答:分情况,如果服务端、客户端都是在我们已知的情况下操作建立的项目,那么是可以自行定义的;但如果是例如网页请求等之类的,状态码描述信息是不可修改的;

总结:状态码描述并非严格谨慎,但响应状态码却是十分严格的!

头部

首先记住一点,在头部一长串的符号里,\r\n\r\n是结束标志;

我们也知道头部的这一串信息是由key-value键值对组成的,其仔细一看也是有讲究的:

Connection:是否长连接?
Content-Length:描述正文长度;
Content-Type:描述正文类型;

此时注意有一个重要内容需要解释,那就是session和cookie;

**session:**是服务端为每个客户端在服务端创立的会话,保留客户端的认证信息;

**cookie:**是服务端通过set-cookie响应给客户端的信息,保存在客户端,下次客户端重新申请时会带上cookie信息;

提问:为什么要有这个呢?

回答:由于HTTP是一种无状态的协议,服务器单从网络连接上无从知道客户身份。怎么办呢?就给客户端们颁发一个通行证吧,每人一个,无论谁访问都必须携带自己通行证。这样服务器就能从通行证上确认客户身份了,cookie就是这个通行证。这就是Cookie的工作原理。
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

空行

就是一个空行,一个啥也没有啥也不是的间隔,隔离头部与正文,判断是否接受了完整的http头部信息;

正文

没错,就是正文,没啥可分析的。

实例展示
在这里插入图片描述
在这里插入图片描述

大概就是这样,这一版内容呢完完全全的解释了http协议的数据格式,以及在数据传输中的实例。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值