您的位置:首页 > 理论基础 > 计算机网络

前端HTTP入门

2020-06-29 05:02 1051 查看

概念

HTTP(HyperText Transfer Protocol,超文本传输协议)

TCP/IP协议分层

  • 应用层

    应用层决定了向用户提供应用服务时通信的活动。TCP/IP协议族内预存了各类通用的应用服务。
    比如,FTP(FileTransfer Protocol,文件传输协议)和DNS(Domain NameSystem,域名系统)
    服务就是其中两类。HTTP协议也处于该层。
  • 传输层

    传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不
    同的协议:TCP(Transmission ControlProtocol,传输控制协议)和UDP(User Data Protocol,
    用户数据报协议)
  • 网络层(又名网络互连层)

    网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位。该层规定了通过怎样
    的路径(所谓的传输路线)到达对方计算机,并把数据包传送给对方。与对方计算机之间通过多台
    计算机或网络设备进行传输时,网络层所起的作用就是在众多的选项内选择一条传输路线。
  • 链路层(又名数据链路层,网络接口层)

    用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱动、NIC(Network Interface
    Card,网络适配器,即网卡),及光纤等物理可见部分(还包括连接器等一切传输媒介)。硬件上
    的范畴均在链路层的作用范围之内。
TCP/IP通信传输流 封装

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息。反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。这种把数据信息包装起来的做法称为封装(encapsulate)。

TCP三次握手

为了准确无误地将数据送达目标处,TCP协议采用了三次握手(three-way handshaking)策略。
用TCP协议把数据包送出去后,TCP不会对传送后的情况置之不理,它一定会向对方确认是否成功送达。握手过程中使用了TCP的标志(flag)——SYN(synchronize 同步)和ACK(acknowledgement 接受)。

  • 1、客户端主动打开,发送连接请求报文段,将SYN标识位置为1,Sequence Number置为x(TCP规定SYN=1时不能携带数据,x为随机产生的一个值),然后进入SYN_SEND状态
  • 2、服务器收到SYN报文段进行确认,将SYN标识位置为1,ACK置为1,Sequence Number置为y,AcknowledgmentNumber置为x+1,然后进入SYN_RECV状态,这个状态被称为半连接状态
  • 3、客户端再进行一次确认,将ACK置为1(此时不用SYN),Sequence Number置为x+1,Acknowledgment Number置为y+1发向服务器,最后客户端与服务器都进入ESTABLISHED状态
DNS(域名解析服务)

用于解析域名呵IP地址

TCP四次挥手

因为TCP是全双工的,所以,发送方和接收方都需要Fin和Ack。只不过,有一方是被动的,所以看上去就成了所谓的4次挥手
当客户端没有数据再需要发送给服务端时,就需要释放客户端的连接:

  • 客户端发送一个报文给服务端(没有数据),其中FIN设置为1,Sequence Number置为u,客户端进入FIN_WAIT_1状态
  • 服务端收到来自客户端的请求,发送一个ACK给客户端,Acknowledge置为u+1,同时发送Sequence Number为v,服务端进入CLOSE_WAIT状态
  • 服务端发送一个FIN给客户端,ACK置为1,Sequence置为w,Acknowledge置为u+1,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态
  • 客户端收到FIN后,进入TIME_WAIT状态,接着发送一个ACK给服务端,Acknowledge置为w+1,SequenceNumber置为u+1,最后客户端和服务端都进入CLOSED状态。
HTTP/1.1 通用首部字段
  • Cache-Control 缓存指令
    缓存请求指令

    缓存响应指令

  • Accept指令

    Accept首部字段可通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级。可使用
    type/subtype这种形式,一次指定多种媒体类型
  • Accept-Encoding(可否接收压缩文件)

    Accept-Encoding首部字段用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。可
    一次性指定多种内容编码
  • Authorization (用户代理的认证信息)

    用于权限校验
  • Cookie

    用于保存用户状态,会在HTTP请求时自动携带

web攻击

  • XSS(跨站脚本攻击)

    1.攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。
    2.诱使受害者打开受到攻击的服务器URL。
    3.受害者在Web浏览器中打开URL,恶意脚本执行。
  • SQL注入攻击

    恶意注入非法SQL语句,攻击数据库
  • CSRF( 跨站点请求伪造)

    攻击者诱使用户点击恶意链接,从而窃取用户信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: