当前位置 博文首页 > 谁吃薄荷糖:【 ?斗艳争妍の网络协议姐妹花????】http协议 VS we

    谁吃薄荷糖:【 ?斗艳争妍の网络协议姐妹花????】http协议 VS we

    作者:[db:作者] 时间:2021-08-27 12:58

    http协议

    http简介

    • http

    http(hypertext transfer protocol),“超文本传输协议”。

    • 超文本

    包含有超链接和各种多媒体元素标记的文本。常见的超文本格式html(超文本标记语言)。

    • http协议

    定义浏览器如何向web服务器发送请求,web服务器如何向浏览器进行响应。简言之,就是client端与server端进行数据传输的一种规则。

    http工作原理

    • 请求/响应模型

    用户点击http://www.baidu.com/index.html后的流程:

    1. 分析链接
    2. 浏览器向dns请求分析www.baidu.com的ip
    3. dns将分析出的112.80.248.75返回给浏览器
    4. 浏览器与服务器建立tcp连接
    5. 浏览器向服务器请求:GET /index.html
    6. 服务器向浏览器回复:index.html内容
    7. 释放tcp连接
    8. 浏览器解析html元素并显示

    简言之:建链->请求->响应->断开

    • 连接方式
    1. 非持久连接:浏览器每一个请求都创建一个新连接,当响应完毕后,连接就被释放。
    2. 持久连接:一个连接中,可以进行多次请求和响应。服务器在发送响应后,并不立即释放连接,可继续使用。
    • 无状态性

    http协议本身不会对发送过的请求和响应的通讯状态进行持久化处理。

    同一客户端(浏览器)第二次访问同一个web服务器时,服务端无法知道这个客户端是否曾经访问过。

    无状态性保证了http协议的简单性,从而能够快速处理大量的事务,提高了效率。

    通常使用cookie或附带其他参数(token)用来区分来源。

    发展历程

    • http/1.0

    每个tcp连接只能发送一个请求。发送数据完毕,该连接就关闭,如果还要请求其他资源,就必须再新建一个连接。非标Connection:keep-alive

    • http/1.1
    1. 持久连接(persistent connection):tcp连接默认不关闭,可以利用,无需声明Connection:keep-alive
    2. 管道机制(pipeline):在同一个tcp连接里,客户端可以同时发送多个请求。这样就进一步改进了http协议的效率。
    3. 字段(Content-Length):一个tcp连接现在可以传送多个回应,势必就要有一种机制,区分数据包是属于哪一个回应的。这就是Content-Length字段的作用,声明本次回应的数据长度。
    4. 分块传输编码

    http报文结构(请求/响应报文结构)

    请求报文和响应报文都是由以下4部分组成:

    1. 请求行/响应行
    2. 请求头/响应头
    3. 空行
    4. .消息主体(请求体/响应体)

    http报文请求方法

    方法含义
    GET请求读取
    POST请求添加
    PUT存储
    DELETE删除
    HEAD请求信息首部
    TRACE用于测试,要求服务器回收到请求
    CONNECTION用于代理服务器
    OPTION查询特定选项

    http报文状态码

    响应报文里的状态码:指明特定的请求是否被满足,如没有满足,给出原因。

    状态码含义示例
    1xx通知信息100:服务器正在处理客户端请求
    2xx成功200:请求成功
    3xx重定向301:重定向
    4xx客户端错误403:禁止的页面;404:未找到
    5xx服务器错误500:服务器内部错误

    http协议短板

    • 请求/响应模型

    请求/响应模型:通信只能由客户端发起,服务端不能主动发送消息给客户端。

    客户端 服务器 请求 响应 客户端 服务器 cs
    下一篇:没有了