zoukankan      html  css  js  c++  java
  • HTTP记录

    -------------TCP握手协议-------------
    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.

    【第一次握手】建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
    SYN:同步序列编号(Synchronize Sequence Numbers)
    【第二次握手】服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
    【第三次握手】客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.

    完成三次握手,客户端与服务器开始传送数据

    【HTTP工作原理】

    HTTP 协议采用请求/响应模型。客户端向服务器发送一个请求报文,服务器以一个状态作为响应。

    步骤:
    1>>客户端连接到web服务器:HTTP 客户端与web服务器建立一个 TCP 连接;
    2>>客户端向服务器发起 HTTP 请求:通过已建立的TCP 连接,客 户端向服务器发送一个请求报文;
    3>>服务器接收 HTTP 请求并返回 HTTP 响应:服务器解析请求,定位请求资源,服务器将资源副本写到 TCP 连接,由客户端读取;
    4>>释放 TCP 连接:若connection 模式为close,则服务器主动 关闭TCP 连接,客户端被动关闭连接,释放TCP 连接;若
    connection 模式为keepalive,则该连接会保持一段时间,在该 时间内可以继续接收请求;
    5>>客户端浏览器解析HTML内容:客户端将服务器响应的 html 文 本解析并显示;

    ----------------http请求----------------
    组成:
    1>请求行: 请求方式+URI+http版本
    2>请求头部(键值对)
    3>空行
    4>请求数据:post方式传递的参数在这里
    【请求方式】
    1)GET
    2)POST
    3)HEAD
    4)TRACE
    5)PUT
    6)CONNECT
    7)DELETE
    【http1.0/http1.1】
    1.0:一次连接可以发送一次请求
    1.1:一次连接可以发送多次请求
    【url/uri】
    1)url统一资源定位符 定位互联网资源
    2)uri统一资源标记符 定位任何资源
    【GET/POST】
    GET参数在url中,POST在实体内容
    GET参数数据有限,不超过1kb,POST无限制
    GET在浏览器回退时是无害的,POST会再次提交请求。
    GET请求只能进行url编码,而POST支持多种编码方式。
    GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
    GET只接受ASCII字符的参数的数据类型,而POST没有限制
    那么,post那么好为什么还用get?get效率高!。

    ---------------http响应---------------------
    1>状态行: 协议版本 状态码 状态码描述
    2>响应头部(键值对)
    3>响应正文:服务器返回给客户端的文本信息
    【状态码】
    200 : 表示请求处理完成并完美返回
    302: 表示请求需要进一步细化。
    404: 表示客户访问的资源找不到。
    500: 表示服务器的资源发送错误。(服务器内部错误)
    502:错误网关
    503:服务出错

  • 相关阅读:
    centos8下安装Dlib
    如何在CentOS7上安装桌面环境
    PIL、Pillow安装使用方法
    Linux -ls-列出文件的详细信息
    ValueError: Object arrays cannot be loaded when allow_pickle=False
    AttributeError: module 'keras.backend' has no attribute 'set_image_dim_ordering'
    CentOS安装CMake
    ValueError: Object arrays cannot be loaded when allow_pickle=False
    Keras requires TensorFlow 2.2 or higher
    importError: libSM.so.6: cannot open shared object file: No such file or directory
  • 原文地址:https://www.cnblogs.com/xiongyungang/p/10503377.html
Copyright © 2011-2022 走看看