zoukankan      html  css  js  c++  java
  • http工作原理

    http  超文本传输协议

    www服务器传输超文本本地浏览器传输协议

    (详情请参考(本文参考于)http://www.360doc.com/content/13/0422/16/3777348_280148022.shtml

    计算机间的通信

    tcp:传输控制协议

    ip :网际协议

    ip协议

    ip协议是计算机用来相互识别的机制。

    每台计算机在internet上都有一个ip,通过识别ip可以定向传输和发送数据包,但是这个协议不保证包到达的顺序和完整性(只检查关键的头数据)

    tcp协议

    tcp协议确保包的到达顺序,并尝试检查包又没改变。

    tcp负责将信息包切割,在到达时进行重组。

    tcp在ip上引入端口,部分端口被保留,用于一些服务。例如80端口用于www的http通信流出。

    但一个应用程序想通过tcp与另一应用程序通信,流程:

    发一个请求(必须用切确的地址)(握手);

    握手成功后,tcp会在两应用程序之间建立一个全双工的通信,占用两个应用程序的通信线路。

    tcp/ip协议

    tcp/ip就是两个协议的协同工作。

    tcp负责应用程序间的通信,ip负责计算机间的通信。

    过程tcp将数据包切割并放入ip包中,ip负责将包发送到接收者处(IP路由寻址),到达后tcp将数据包进行重组。

    http  协议基于tcp/ip

    http是由请求和响应组成 ,请求/应答模型。是一个标准的客户端服务器的模型(B/S)。所以http协议永远是由客户端发起的,服务器响应。

    http是一个无状态协议,客户端与服务器端不需要长连接。一次请求和响应完成后,连接就会关闭。在服务器端不保存任务连接信息。

    http工作过程

    过程:

    1.地址解析:

    客户端访问某url,从url解析出  协议名 主机号 端口号 对象路径 ,如:

    url:  http://47.52.97.152:3000/index.html

    协议名:http

    主机号:47.52.97.152  (注:如果主机号处是域名,还要进行域名解析(dns系统解析)为ip)

    端口号:3000

    对象路径:/index.html

    2.封装成http请求包:

    将地址解析的信息和本机信息,封装成一个http请求包

    3.封装成tcp包,建立tcp连接(3次握手)

    4.客户端发送请求

    5.服务端响应

    6.服务器关闭请求连接

    但如果浏览器或服务器端在头信息中加入connection:keep-alive,此次连接将保持连接,之后的请求可以继续通过此次的连接进行通信,节省请求新连接时间,节省带宽。但设置设置为connection:close就会中断。

    http 1.0中默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep-Alive连接就看服务器设置情况。

    本文参考于:http://www.360doc.com/content/13/0422/16/3777348_280148022.shtml,图片来源于网络

  • 相关阅读:
    2月25日
    Maven启动tomcat7:run运行异常:org.apache.catalina.LifecycleException: Failed to start component
    Junit测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
    tomcat启动控制台乱码
    Java虚拟机内存详解
    Ajax使用
    Struts2工作流程
    java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
    Spring-Aop的两种代理方式
    springboot与dubbo整合遇到的坑
  • 原文地址:https://www.cnblogs.com/baixinL/p/11966121.html
Copyright © 2011-2022 走看看