zoukankan      html  css  js  c++  java
  • HTTP 基础知识

    一、HTTP 超文本传输协议
    HTTP 是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议。 一个HTTP "客户端"是一个应用程序(Web浏览器或其他任何客户端),通过连接到服务器达到向服务器发送一个或多个HTTP的请求的目的。 一个HTTP "服务器"同样也是一个应用程序(通常是一个Web服务,如Apache Web服务器或IIS服务器等),通过接收客户端的请求并向客户端发送HTTP响应数据。 HTTP 使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。

    HTTP 请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。

    HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD方法。

    HTTP1.1 新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

    二、HTTP 请求方式:

    复制代码
    GET     请求指定的页面信息,并返回实体主体。
    HEAD    类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    POST    向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    PUT     从客户端向服务器传送的数据取代指定的文档的内容。
    DELETE    请求服务器删除指定的页面。
    CONNECT    HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
    OPTIONS    允许客户端查看服务器的性能。
    TRACE    回显服务器收到的请求,主要用于测试或诊断。
    复制代码

    三、HTTP 返回状态码---《关于HTTP返回码

    1xx    处理信息,服务器收到请求,需要请求者继续执行操作;
    2xx    请求成功,操作被成功接收并处理;
    3xx    重定向,需要进一步的操作以完成请求;
    4xx    客户端错误,请求包含语法错误或无法完成请求;
    5xx    服务器错误,服务器在处理请求的过程中发生了错误;

    四、HTTP的交互流程

    步骤一:客户端和服务器端建立连接 

    步骤二: 客户端发送请求数据到服务器端(HTTP协议) 

    步骤三: 服务器端接收到请求后,进行处理,然后将 处理结果响应客户端(HTTP协议) 

    步骤四: 关闭客户端和服务器端的连接(HTTP1.1后不会立即关闭) 

    二丶HTTP协议与其他协议之间的交互

    HTTP协议是TCP/IP协议栈的一部分,按照TCP/IP协议分层理念,其位于应用层。一个完整的通信流程必然是由许多协议相互配合完成。本节将介绍HTTP协议是如何配合其他协议完浏览器发出请求到获取响应的通信过程

    1. DNS域名解析过程
      DNS是域名解析系统,域名解析系统的只要目的就是完成域名地址到IP地址的转换。此处引用一张图来介绍DNS域名解析过程(图片来源)。


      结合上图,以www.baidu.com这个域名为例。在浏览器中输入该域名后,会经过如下域名解析过程。
      • 从本机的host文件中检查域名和IP地址的映射。host文件默认保留了
        localhost->127.0.0.1这个映射关系
      • host文件中不存在解析关系时,检查浏览器是否存在解析缓存,若命中则使用解析缓存,否则将解析请求转发给local DNS(local DNS是服务局部区域的域名解析服务器).
      • local DNS先检查自身是否存在该域名解析缓存,若命中返回解析结果。否则将解析请求转发给ROOT DNS(根域名服务器)。
      • 根域名服务器,检查到请求解析的域名是www.baidu.com。那么返回解析顶级域名baidu.com的gTLD域名服务器地址。
      • localDNS接收到根域名返回的gTLD域名服务器地址后,将解析请求再次转发给该域名服务器
      • gTLD域名服务器接收到www.baidu.com的域名请求后,返回二级域名www.baidu.com对应的Name DNS服务器地址。
      • local DNS收到来自gTLD的响应后,再次将域名解析结果传递给Name DNS服务器。
      • Name DNS服务器收到www.baidu.com的域名解析请求后,发现正属于自身所管辖的解析范围。所以查找域名和IP地址映射关系,将解析结果返local DNS。
      • local DNS收到解析结构后,缓存该解析结果。下次遇见相同的解析请求时。直接使用缓存结果即可。
    2. 协议封包/解包过程的过程
      本文中将HTTP封包,TCP封包,IP封装以及对应的解包的过程统称为协议封包和解包过程。其一般过程如下:


       


  • 相关阅读:
    变量的创建和初始化
    HDU 1114 Piggy-Bank (dp)
    HDU 1421 搬寝室 (dp)
    HDU 2059 龟兔赛跑 (dp)
    HDU 2571 命运 (dp)
    HDU 1574 RP问题 (dp)
    HDU 2577 How to Type (字符串处理)
    HDU 1422 重温世界杯 (dp)
    HDU 2191 珍惜现在,感恩生活 (dp)
    HH实习 acm算法部 1689
  • 原文地址:https://www.cnblogs.com/duanxz/p/5509631.html
Copyright © 2011-2022 走看看