HTTP协议

目录

一、HTTP协议简介

二、HTTP协议的发展历史

三、HTTP工作原理

四、HTTP三次握手 

为什么要三次握手

五、HTTP四次挥手

为什么四次挥手

六、HTTP请求方法


一、HTTP协议简介

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。

通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如"HTTP/1.1 200 OK",以及返回的内容,如请求的文件、错误消息、或者其他信息。

二、HTTP协议的发展历史

  • http/0.9:只有一个命令get,没有header等描述数据的信息,服务器发送完毕,就关闭tcp协议。
  • http/1.0:增加了很多命令,增加了status code 和 header
  • http/1.1:持久连接,同一个连接发送多次请求,增加post
  • http/2:所有数据二进制传输,同一个链接里发送多个请求不再按照顺序来,头信息压缩以及推送(之前的版本html页面如果连接了css和js,先解析html,现在是并行顺序)等提高效率的功能。

三、HTTP工作原理

1.首先客户端和服务端先建立连接(TCP三次握手

2.发送HTTP请求

3.服务器接受请求并返回HTTP响应

4.客户端收到响应后断开连接(TCP四次挥手

5.客户端浏览器解析HTML内容

四、HTTP三次握手 

      

  • 打一次握手:客户端向服务端发送连接请求,将标志位SYN置为1,随机产生一个值seq = j ;客户端进入SYN_SENT状态,等待服务器端确认
  •  第二次握手:服务端响应客户端,并要求确认,将标志位SYN和ACK都置为1,ack = j+1,随机产生一个值seq = k;服务器端进入SYN_RCVD状态
  • 第三次握手:客户端效验(ack=j+1 &&ACK=1),效验通过将标志位ACK置为1,ack = K+1响应服务端;服务端收到后效验(ack=K+1&&ACK = 1),效验通过连接建立成功;客户端进入ESTABLISHED状态,完成三次握手

为什么要三次握手

客户端:c,服务端:s

第一次:c向s请求,此时c什么都不知道,s知道c发送正常,自己接收正常

第二次:s向c响应,此时c知道自己和s收/发正常,s知道c发送正常,自己接收正常

第三次:c向s响应,此时c知道自己和s收/发正常,s知道自己和c收/发正常

五、HTTP四次挥手

  •  第一次挥手:客户端向服务端发出断开请求,将标志位FIN置为M;客户端进入FIN_WAIT_1状态
  • 第二次挥手:服务端响应客户端,发送ack=M+1;客户端进入FIN_WAIT_2状态
  • 第三次挥手:服务端向客户端发送请求,将标志位FIN置为N;服务端进入LAST_ACK状态
  • 第四次挥手:客户端响应服务端,发送ack= N+1;客户端进入TIME_WAIT状态,等待2MSL后没收到回复证明服务端已关闭连接,此时客户端就关闭连接完成四次挥手

为什么四次挥手

客户端:c,服务端:s

第一次:c向s请求,c不再发送数据了,但是还能接收

第二次:s向c响应,s确认收到请求,但是还有数据要发送

第三次:s向c请求,s数据发完了

第四次:c向s响应,c确认收到请求,等待超时关闭;s收到响应后立即关闭

六、HTTP请求方法

HTTP/1.1协议中共定义了八种方法(也叫"动作")来以不同方式操作指定的资源:GET、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT、HEAD;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值