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,图片来源于网络

  • 相关阅读:
    OLAP ODS项目的总结 平台选型,架构确定
    ORACLE ORA12520
    ORACLE管道函数
    ORACLE RAC JDBC 配置
    ORACLE RAC OCFS连接产生的错误
    ORACLE 启动和关闭详解
    OLAP ODS项目的总结 起步阶段
    ORACLE RAC 配置更改IP
    ORACLE RAC OCR cann't Access
    ORACLE RAC Debug 之路 CRS0184错误与CRS初始化
  • 原文地址:https://www.cnblogs.com/baixinL/p/11966121.html
Copyright © 2011-2022 走看看