http-常问问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:
网络常见问题


提示:以下是本篇文章正文内容,下面案例可供参考

一、协议体系结构

在这里插入图片描述

二、TCP

三次握手

SYN:同步位;SYN=1,表示要做一个连接请求;
ACK :确认位;ACK=1,表示确认有效;ACK==0,表示确认无效;
seq:序列号
ack:确认号;对方发送的序号+1;

在这里插入图片描述
前提条件:
服务端是启动状态;
流程:

  1. 客户端主动发起请求; 请求发送到服务器;携带信息:
    SYN=1;
    seq = x;(x 序列号是客户端随机的)
  2. 服务器给客户端发送一个响应,表示自己收到了;携带信息:
    SYN=1;
    ACK=1;
    ack = x+1;
    seq = y;(y序列号是服务器随机的)
  3. 客户端给服务端发送一个响应,表示自己收到了;携带信息:
    ACK=1;
    ack =y+1;
    seq = x+1;(每次都会发送一个seq,值为上次的x+1)

此时就可以进行数据传输了

四次挥手

断开链接tcp四次挥手
seq: 随机生成的序列号
ack:ack = seq+1; 是确认号
ACK:确认序列号有效
SYN:发起新链接
FIN:完成
客户端和服务端都可以发起。以客户端发起为例
在这里插入图片描述

FIN:FIN=1;断开链接;并且客户端会停止向服务端发数据
流程:

客户端主动发起一个关闭请求;携带信息:
FIN=1;
seq =u;
服务器给客户端发送一个响应,表示自己收到了;携带信息:
ACK=1;
ack=u+1;
seq = v;(服务器生成)
此时称为半关闭状态;此时服务器还是会向客户端发送数据
服务器向客户端发送一个关闭请求;携带信息:
FIN=1;
ACK=1;
seq=w;(因为,此时还是半关闭状态,服务器生成的序列号并不能确定,不一定是v 了,所以用w 来表示)
ack=u+1;(客户端没有向服务器端再次发送序列号,所以,此时的确认号,仍然是上次浏览器发过来的序列号+1;即:u+1)
客户端给服务端响应,表示自己收到了;携带信息:
ACK=1;
ack=w+1;
seq = u+1;
注意:

在fin_wait_2:会等待未完成的任务完成
1-4min 超时等待状态;

发送请求的方法

方法名称 方法说明 支持的HTTP 协议版本
get GET 方法用于根据 URI 参数从服务器中获取数据,是最常用的请求方法之一 1.0、1.1
head HEAD 方法与 GET 方法类似,但服务器在响应时只返回响应行和响应头,不会返回响应体 1.0、1.1
post POST 请求用于将数据发送到服务器。例如使用 HTML 表单上传文件或提交客户信息等 1.0、1.1
put PUT 方法可以向服务器中写入文档,有点类似于使用 FTP 上传文件 1.0、1.1
delete DELETE 方法用于删除 URI 所指定的目标资源,与 PUT 方法正好相反 1.0、1.1
connect CONNECT 方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行 TCP 通信 1.1
options OPTIONS 方法用来查询目标资源所在服务器支持的 HTTP 方法 1.1
trace TRACE 方法可以让服务器端将收到的请求返回给客户端,主要用于开发阶段的测试和诊断 1.1
link 建立和资源之间的联系 1.0
unlink 断开链接关系 1.0

http 状态码

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jxy9998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值