Http基础
HTTP 即超文本传输协议,它规定了数据在网络中传输的格式,
HTTP 在应用层将数据封装成固定的格式,然后再交由传输层去进行传输
一:网络由下往上
物理层
数据链路层
网络层 (ip协议)
传输层 (tcp协议)
会话层
表示层和应用层 (http协议)
二:
Socket:tcp/ip协议的封装,socket本身不是协议,而只是提供一个tcp/udp接口,通过socket才能使用tcp/ip协议。
http是轿车,提供了封装或者显示数据的具体形势,socket是发动机,提供了通信的能力。
tcp三次握手:第一次握手:客服端发送syn包到服务器,进入syn-send状态,等待服务器确认
第二次握手:服务器收到syn包,进入syn-recv状态,发送syn+ack到客服端
第三次握手:客户端收到syn+ack包,向服务器发送确认包ack,发送完毕后,客户端服务端进入established状态
注:握手包里不包含数据,三次握手完毕后,客户端和服务端才开始传输数据。断开连接需要四次握手。
TCP的三次握手最低限度上保证了连接的可靠性。UDP传送数据前不需要建立连接,
服务器接收到数据也不需要确认,所以服务端不需要重发。
三:Http/Https区别:
Http: 默认端口为80
以明文方式发送内容
不提供任何数据加密
Https: Http+SSL(证书验证)
默认端口为443
费时
收费
不支持ipv4
四:Http状态码
当浏览者访问一个网页时,浏览者的浏览器会向网页所在的服务器发出请求。
返回一个包含http状态的信息头用以响应浏览器的请求
1** 服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收 --200 请求成功
3** 重定向,需要进一步的操作来完成请求 --301 资源(网页)被永久转移到其他url
4** 客户端发出的请求错误 --404 请求的资源不存在
5** 服务器错误,服务器处理请求的过程出错 --500 内部服务器错误
五:通信报文格式
客户端的请求报文: 请求行+header+空行+body
服务端的响应报文:状态行+heade+空行+body
1.请求行:请求方法,url,协议版本
2.状态行:响应时间,数据格式,数据长度
3.header:额外信息
4.空行:区分header和body
5.对接的业务数据