zoukankan      html  css  js  c++  java
  • HTTP协议 概述

    本文主要说明一些 Http 相关的基本概念和基本知识,主要针对像我一样的初学者,知识主要来自于《Http 权威指南》

    除了分享这些基本知识之外,笔者也是为将来找工作复习之用。(协议就是协议,它就在那里)



    问题

    Web 客户端与服务器是如何通信的?

    资源来自哪里?

    Web 事务是怎样工作的?

    Http 通信所使用的报文格式是怎样的?

    底层TCP 网络传输是怎样的?

    目录

    Http - 因特网的多媒体信使

    Web 客户端和服务器

    资源

    事务

    报文

    连接

    Web 的结构组件



    正文

    Http - 因特网的多媒体信使

    什么是http协议?它是干什么的?

    协议就是一群人或者一大群人(组织)商量的一种彼此都认可的交换信息的约定。

    http协议是一种应用层协议,它使用的是可靠的数据传输协议。使得应用程序开发人员专注于应用程序特有的技术细节。

    Web 客户端和服务器

    客户端发送Http 请求,服务器在Http 响应中回送所请求的数据。(Http 客户端和Http 服务器构成了万维网的基本组件)

    资源

    Web 服务器是Web 资源的宿主。

    资源分为静态资源(文件,图片,动画,电影等媒体资源)和动态资源(根据需要动态生成内容的软件程序)

    事务

    一个Http 事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发往客户端的)响应结果组成。

    这种通信通过Http 报文的格式化数据块进行的。

    http 请求通过http 方法告诉服务器要执行什么操作(获取一个页面,一个网关程序,删除一个文件等)

    http 响应通过http 状态码告诉客户端请求是否成功,或者是否需要采取其他动作。

    报文

    Http 报文是由一行一行的简单字符串组成的。

    报文包括三部分组成:起始行,首部,主体

    请求报文的格式:

    <method>  <request-URL>  <version>
    <headers>
    //一行空行
    <entity-body>

     响应报文的格式:

    <version>  <status>  <reason-phase>
    <headers>
    //一行空行
    <entity-body>

     连接

    Http 只是应用层协议,底层交给了通用、可靠的因特网传输协议TCP/IP。

    在Http 客户端向服务器发送报文之前,需要用IP地址和端口号在客户端和服务器之间建立一条TCP/IP连接。

    Web 的结构组件

    代理

    位于客户端和服务器之间的Http 中间实体。

    是Web 安全、应用集成以及性能优化的重要组成模块。

    缓存

    一种特殊的Http 代理服务器,使常用页面的副本可以保存在离客户端更近的地方。

    网关

    是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将Http 流量转换成其他协议。

    网关接收请求时好像自己是资源的源端服务器一样。

    隧道

    隧道是建立起来之后,就会在两条链接之间对原始数据进行盲转发的Http 应用程序。

    常见用途是通过Http 连接承载加密的安全套接字层流量。

  • 相关阅读:
    js:数据结构笔记13--检索算法
    ember.js:使用笔记9 开始单元测试
    js:数据结构笔记12--排序算法(2)
    js:数据结构笔记11--排序算法(1)
    js:数据结构笔记10--图和图算法
    js:数据结构笔记9--二叉树
    js:数据结构笔记8--集合
    js:数据结构笔记7--哈希表
    js:数据结构笔记6--字典
    js:数据结构笔记5--链表
  • 原文地址:https://www.cnblogs.com/googny/p/4057722.html
Copyright © 2011-2022 走看看