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.对接的业务数据

 

posted @ 2018-06-22 14:18  超级驼鹿  阅读(284)  评论(0编辑  收藏  举报
/*