http基础

Posted yufenchi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http基础相关的知识,希望对你有一定的参考价值。

第1章 用户访问网站流程

1.1 文字描述如下

00. 客户端  浏览器输入网址信息点击回车(www.oldboyedu.com)
01. 客户端  完成域名的解析过程(DNS) 
02. 客户端  直接访问相应网站服务器  建立TCP三次握手过程
03. 客户端  访问网站服务器         发送HTTP请求报文  多次
04. 服务端  响应客户端请求         回复HTTP响应报文  多次
05. 客户端  浏览器看到网站页面
06. 客户端  结束访问网站过程       完成TCP四次挥手过程

1.2 三次握手的工作流程

技术图片
文字描述如下

第一次握手:
发送syn=1请求建立连接控制字段,同时发送序列号seq=client_isn
第二次握手:
发送自己的syn=1和序列号seq=server_isn ,同时会发送ack=client_isn+1 确认控制字段
第三次握手:
收到ack=client_isn+1确认控制字段,同时发送自己的ack=server_isn+1确认控制字段

1.3 四次挥手过程

技术图片
文字描述如下

第一次挥手:
发送fin请求断开连接控制字段
第二次挥手:
发送ack确认控制字段
第三次挥手:
发送fin请求断开连接控制字段,同时ack确认控制字段 (这一步表示我也想断开)
第四次挥手:
发送ack控制字段

1.4 TCP的十一种状态集

TCP三次握手:5种状态

00: 最开始两台主机都处于关闭状态   closed
01: 服务端将相应服务进行开启       closed --- listen
02: 客户端向服务端发出连接请求     closed --- syn_sent
03: 服务端接收到连接请求,进行确认  listen --- syn_rcvd
04: 客户端再次进行确认             syn_sent --- established
05: 服务端接收到确认信息           syn_rcvd --- established

TCP四次挥手

01: 客户端发送请求断开连接信息           established -- fin_wait1
02: 服务端接收断开连接请求,并进行确认    established -- close_wait
03: 客户端接收到了确认信息               fin_wait1  -- fin_wait2
04: 服务端发送ack和fin字段               close_wait -- last_ack
05: 客户端接收到请求断开连接信息,发送确认 fin_wait2 -- time_wait 
06: 服务端接收到确认信息                  last_ack  -- closed
07: 客户端等待一段时间                    time_wait -- closed

第2章 HTTP协议请求和响应过程

2.1 HTTP请求报文

报文格式 报文信息
请求行 请求方法及请求协议的版本
请求头 请求的主机信息
空行 隔离上下文
请求报文主体 1. 使用get方法时, 没有请求主体信息 2.使用post方法时,具有请求主体内容

2.1.1 请求行

技术图片

2.1.2 请求头

技术图片

2.1.3 空行

此行是用来和请求头隔离的一行,上图中请求头只是举例一些例子,还有很多信息,这一行是用来隔离的

请求主体

用get方式请求是没有请求主体的,只有用post请求才会有请求主体的内容

2.2 HTTP响应报文

2.2.1 起始行

响应报文的起始行也叫状态行,用来说明服务器相应客户端请求的状态,一般为协议及版本号,数字状态码,状态情况,例如:HTTP/1.1 200 OK

2.2.2 响应头部

和请求报文类似,起始行的后面一般有若干个头部字段,每隔头部字段都包含一个名字和一个值,两者之间用冒号分隔.头部结尾也是以空行结束.常见的头部信息有

2.2.3 空行

用来个上下文隔离的

2.2.4 响应主体

响应报文主体装载了要返回给客户端的数据,这些数据可以是文本,也可以使二进制的图片视频

第3章 HTTP请求的方法

技术图片

第4章 HTTP响应状态码

4.1 响应状态码分类

技术图片

4.2 常见响应状态码解释

技术图片

4.3 使用curl查看状态码

curl -I -s -w "%{http_code}
" -o /dev/null  www.baidu.com

第5章 HTTP协议介绍

5.1 URL

全称为Uniform Resource Location,中文翻译为统一资源定位符

5.2 URI

全称为Uniform Resource Identifier,中文翻译为统一资源标识符

URL和URI关系

docs.ansible.com   / ansible/latest/user_guide/playbooks_reuse_roles.html
URL                  URI 


以上是关于http基础的主要内容,如果未能解决你的问题,请参考以下文章

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

jsp基础语言-jsp代码段

201555332盛照宗—网络对抗实验1—逆向与bof基础

VsCode 代码片段-提升研发效率

20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础

Flask 编写http接口api及接口自动化测试