web基础
HTTP的请求流程
web服务器使用的就是如上的一种名为HTTP(HyperText transfer protocol,超文本传输协议)
完成客户端到服务端的一系列请求过程
TCP/IP协议
protocol协议
协议存在各种各样的形式,常见的协议 如下
icmp,internet control message protocol,用于在服务器之间,网络设备之间进行消息传递
dns协议,建立在UDP和TCP协议之上,默认使用服务器的53端口进行通信,进行域名解析
FTP协议,file transfer protocol,文件传输协议,主要是2部分client,server
nfs协议,rpc协议+nfs协议,运行网络共享文件系统
snmp协议,应用层协议,预先告警发现网络设备的问题
http协议,简单的请求--响应,运行在TCP/IP,协议之上,指定了客户端能够给服务器发送什么形式的请求
ip协议
internet protocol,把数据包发送到指定的目的地,这里最重要的是IP地址和MAC地址
ip地址,是指定了服务器在网络中的一个地址信息
MAC地址,是指服务器网卡硬件设备的设备号(机器在出厂的时候,会设置好全球唯一的MAC号)
IP和ARP的关系
把IP地址和MAC地址进行解析的一个协议
三次握手
Sync表示建立连接的信号
ack 确认消息
第一次握手:客户端发送了SYN=1 seq=x 这个x是一个随机数,服务端接收到了客户端发来的数据包,
知道自己要和客户端建立连接了
第二次握手:服务器给客户端发送一个SYN=1 seq=y 随机数,ACK=x+1,服务端发送前两个数据都是为了
证明自己的发消息的能力,服务端在客户端发出的seq随机数上+1是表示明确客户端身份,他两是同一个连接
第三次握手:客户端再次向服务器发送一个ACK=y+1,明确告诉服务器,可以和客户端进行通信了
HTTP请求与响应
1.客户端和服务器建立连接,客户端发出请求,服务器进行三次握手身份确认
2.服务器接收到请求,linux内核根据(客户端的请求)socket进程通信管道把发给http应用程序去解析(Apache,Nginx)
3.HTTP服务器开始处理请求,对用户的请求报文进行解析,明确客户端需要的资源和请求方式等等
4.HTTP在存储系统上,请求资源,内核去本地文件系统上读取数据
5.HTTP服务构造响应体,应用程序创建响应报文
6.linux内核发出http服务器构造的响应报文,发送客户端
7.HTTP服务器会进行事物记录,记录这个流程的日志