美文网首页
《图解HTTP》

《图解HTTP》

作者: 孔朝阳 | 来源:发表于2019-04-04 13:22 被阅读0次

    一、Web

    1、互联网相关联的协议集合总称为TCP/IP,TCP/IP协议族分为:应用层(HTTP、DNS、FTP)、传输层(TCP、UDP)、网络层(IP)和数据链路层
    2、IP(Internet Protocol)位于网络层,作用是把各种数据包传送给对方(IP地址,节点被分配到的地址、MAC地址,网卡所属的固定地址)
    3、TCP位于传输层,提供可靠的字节流服务(分割数据、三次握手、SYN、ACK)
    4、DNS(Domain Name System)位于应用层,提供域名到IP地址的解析服务
    5、URI用字符串标识某一互联网资源,URL表示资源的地点,URL是URI的子集

    二、HTTP

    1、请求访问的为客户端(Client),提供资源响应的为服务端(Server),HTTP协议能够明确区分
    2、请求报文由请求方法、URI、协议版本、可选的请求首部字段和内容实体构成
    3、响应报文由协议版本、状态码、原因短语、可选的响应首部字段和实体主体构成
    4、HTTP keep-alive(持久连接):只要任意一端没有明确提出断开连接,则保持TCP连接状态。减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务端的负载
    5、HTTP pipelining(管线化):同时并行发送多个请求

    三、Cookie

    1、HTTP是一种不保存状态,即无状态协议。以减少服务器的CPU及内存资源的消耗
    2、Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端状态
    3、Cookie会根据从服务端发送的响应报文中的Set-Cookie首部字段信息,通知客户端保存Cookie

    四、Web Server

    1、一台服务器利用虚拟主机,可托管多个域名服务,所以发送HTTP请求时,必须在Host首部内完整指定主机名或域名的URI
    2、代理服务器的基本行为是接收客户端发送的请求后转发给其他服务器
    3、网关能使通信线路上的服务器提供非HTTP协议服务,提高通信的安全性,如连接数据库
    4、隧道可以确保客户端能与服务器进行安全的通信
    5、缓存是指代理服务器或客户端本地保存的资源副本,利用缓存可减少对源服务器的访问

    五、HTTP Message

    1、HTTP报文有请求报文和响应报文,由报文首部和报文主体组成
    2、请求报文由请求方法、请求URI、协议版本、可选的请求首部字段和内容实体构成
    3、响应报文由协议版本、状态码、原因短语、可选的响应首部字段及实体主体构成
    4、Encoding:编码提升传输速率,常用内容编码:gzip、compress、deflate、identity
    5、MIME(Multipurpose Internet Mail Extensions):在HTTP报文中使用多部分对象集合时,需要在首部字段加Content-Type
    6、Range Request:指定范围发送的请求,首部字段Range,针对范围请求,响应会返回状态码206Partial Content
    7、Content Negotiation:内容协商机制是指客户端和服务端就响应的资源内容进行交涉,然后提供给客户端最为适合的资源

    六、HTTP Method

    1、GET(获取资源)
    2、POST(传输实体主体)
    3、PUT(传输文件)
    4、HEAD(获得报文首部)
    5、DELETE(删除文件)
    6、OPTIONS(询问支持的方法)
    7、TRACE(追踪路径)
    8、CONNECT(要求用隧道协议连接代理)

    七、HTTP StatusCode

    1XX Infomational(接收的请求正在处理)

    2XX Success(请求正常处理完毕)

    200 OK
    204 No Content
    206 Partial Content

    3XX Redirection(需要进行附加操作以完成请求)

    301 Moved Permanently
    302 Found
    303 See Other
    304 Not Modified
    307 Temporary Redirect

    4XX Client Error(服务器无法处理请求)

    400 Bad Request
    401 Unauthorized
    403 Forbidden
    404 Not Found

    5XX Server Error(服务器处理请求出错)

    500 Internal Server Error
    503 Service Unavailable

    八、HTTP Header

    1、General Header Fields(通用首部字段,请求报文和响应报文两方都会使用的首部)

    Cache-Control:操作缓存的工作机制
    Connection:管理持久连接
    Date:表明创建HTTP报文的日期和时间
    Trailer:说明报文主体记录的首部字段
    Transfer-Encoding:规定了传输报文主体时采用的编码方式
    Via:追踪客户端和服务端之间的请求和响应报文的传输路径
    Warning:告知用户缓存相关问题的警告

    2、Request Header Fields(请求首部字段,请求报文使用的首部)

    Host:告知服务器,请求的资源所处的互联网主机名和端口号(必须)
    User-Agent:将创建请求的浏览器和用户代理名称等信息传达给服务端
    Accept:通知服务器用户代理能够处理的媒体类型及媒体类型的相对优先级
    Accept-Charset:通知服务器用户代理支持的字符集及字符集的相对优先级
    Accept-Encoding:通知服务器用户代理支持的内容编码及内容编码的优先级顺序
    Accept-Language:告知服务器用户代理能够处理的自然语言集,以及自然语言集的相对优先级
    Authorization:告知服务器用户代理的认证信息
    Expect:告知服务器期望出现的某种特定行为
    From:告知服务器用户的电子邮件地址
    If-Match:告知服务器匹配资源所用的实体标记值
    If-None-Match
    If-Modified-Since
    If-Unmodified-Since
    If-Range
    Range
    Referer
    Max-Forwards
    Proxy-Authorization
    TE

    3、Response Header Fields(响应首部字段,响应报文使用的首部)

    Server:告知客户端当前服务器上安装的HTTP服务器应用程序的信息
    Age:告知客户端源服务器多久前创建了响应
    ETag:告知客户端实体标识
    Location:将响应接收方引导至某个与请求URI位置不同的资源
    Accept-Ranges:告知客户端服务器是否能够处理范围请求
    Retry-After:告知客户端多久之后再次发送请求
    Vary
    Proxy-Authenticate
    WWW-Authenticate

    4、Entity Header Fields(实体首部字段,实体部分使用的首部)

    Allow:通知客户端能够支持Request-URI指定资源的所有HTTP方法
    Expires:告知客户端资源失效的日期
    Last-Modified:指明资源最终修改的时间
    Content-Type:说明了实体主体内对象的媒体类型
    Content-Encoding:告知客户端服务器对实体主体部分的内容编码方式
    Content-Language:告知客户端实体主体使用的自然语言
    Content-Length:表明实体主体部分的大小
    Content-Location:给出与报文主体部分相对应的URI
    Content-MD5:检查报文主体在传输过程中是否保持完整
    Content-Range:告知客户端作为响应返回的实体的哪个部分符合范围请求

    5、Cookie首部字段

    Set-Cookie
    Cookie

    6、其他首部字段

    DNT
    P3P
    X-Frame-Options
    X-XSS-Protection

    九、HTTPS

    1、HTTP的缺点

    1.1、通信使用明文(不加密),内容可能会被窃听

    HTTP本身不具备加密机制
    1、通信加密,通过和SSL(Secure Socket Layer)或TLS(Transport Layer Security)建立安全通信线路
    2、内容加密,将参与通信的内容本身进行加密,即HTTP报文内容加密

    1.2、不验证通信方的身份,可能遭遇伪装

    HTTP协议中的请求和响应不会对通信方进行确认
    SSL不仅提供加密处理,而且使用证书手段,可用于确认通信方
    证书由值得信任的第三方机构颁发

    1.3、无法证明报文的完整性,可能已遭篡改

    HTTP协议无法证明通信报文的完整性
    请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击(MITM,Man-in-the-Middle attack)
    SSL提供认证和加密处理及摘要功能

    2、HTTPS

    加密
    认证
    完整性保护

    3、加密

    1、对称秘钥加密(共享秘钥加密,Common key crypto system),加密和解密同用一个密钥的方式
    2、非对称密钥加密(公开密钥加密,Public key cryptography)
    3、非对称加密相比对称加密,处理速度较慢

    相关文章

      网友评论

          本文标题:《图解HTTP》

          本文链接:https://www.haomeiwen.com/subject/jlpbbqtx.html