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

    HTTP 概述

    本文为HTTP Web基础部分,概要总结下HTTP;Web浏览器、服务器和相关的Web应用程序都是通过HTTP相互通信的;学习Web应用程序是如何使用HTTP进行通信的。

    包含如下内容:

    • Web客户端与服务器是如何通信的;
    • (表示Web内容的)资源来自何方;
    • Web事务是怎样工作的;
    • HTTP通信使用的报文格式;
    • 底层的TCP网络传输;
    • 不同的HTTP协议变体;
    • 因特网上安装的大量HTTP架构组织的一部分。

    1、 HTTP 使用的是可靠的传输协议

    2、 Web客户端&服务器

    客户端[HTTP请求]:“请将名为/index.html的文档发给我”

    服务器[HTTP相应]:“好的,这就是。文档是以HTML格式给出的,有4520字节长。”

    如上所示:当我们使用浏览器向服务器发送一条HTTP请求,服务器会寻找到所期望的对象,如果成功,就将对象、对象的类型、对象的长度以及其他一些信息放在HTTP响应中发送给客户端 。

    3、资源

    所有能够提供Web内容的东西都是Web资源;(任何格式的文件、根据需要生成内容的软件程序、Web网关、因特网搜索引擎)

    3.1 媒体类型

    因特网上有数千种不同的数据类型,HTTP会给每种要通过Web传输的对象打上名为MIME 类型(MIME type)的数据格式标签。最初设计MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)是为了解决不同的电子邮件系统库之间搬移报文时存在的问题。HTTP也采纳了这种设计并用来描述并标记多媒体内容 。

    Content-type: image/jpeg   ←-----------这里的“image/jpeg”就是MIME类型
    Content-length: 12306
    

    Web服务器会为所有的HTTP对象数据附加一个MIME类型。当浏览器收到一个对象的时候,会查看相关的MIME类型,从而知道怎么处理这个对象(如:显示图片文件、解析并格式化HTML文件、通过计算机的声卡播放音频文件,或者运行外部插件软件来处理特殊格式的数据)。

    MIME类型格式与表示:[主要的对象类型]/(特定的子类型)

    下面是一些常见的例子:

    • HTML格式的文本文档: text/html
    • 普通的ASCII文本文档:text/plain
    • JPEG格式的图片:image/jpeg
    • GIF格式的图片:image/gif
    • Apple的QuickTime电影:video/quicktime
    • 微软的PPT:application/vnd.ms-powerpoint

    更多参考:MIME 参考手册

    3.2 URI

    统一资源标识符(Uniform Resource Identifier,URI),URI有两种形式:

    • URL统一资源定位符

      URL说明了协议、服务器、以及资源,大部分的URL都遵循一种规则格式,这种格式包含三个部分:

      http:// www.baidu.com /image/loggo.gif
      访问资源所使用的协议类型(scheme) 服务器的因特网地址 指定Web服务器上的某个资源
    • URN统一资源名

    4、事务

    一个HTTP事务是由一条请求命令和一条相应结果组成。这种通信是通过HTTP报文(HTTP message)的格式化数据块进行的。

    4.1 方法

    HTTP支持几种不同的请求命令,这些命令称之为HTTP方法(HTTP method)。每条HTTP报文都包含一个方法 ,这个方法告诉服务器要执行什么样的动作(如获取一个Web页面、运行一个网关程序、删除一个文件等等),下表为常见HTTP方法:

    HTTP方法 描述
    GET 从服务器向客户端发送命名资源
    PUT 将来自客户端的数据存储到一个命名的服务器资源中去
    DELETE 从服务器中删除命名资源
    POST 将客户端数据发送到一个服务器网关应用程序
    HEAD 仅发送命名资源响应中的HTTP首部
    4.2 状态码

    每条HTTP响应报文都会包含一个三位数字的状态码,告知客户端响应是否成功或需要采取什么动作,常见状态码如下:

    HTTP状态码 描述
    200 OK。文档正确返回
    302 Redirect(重定向)。到其他地方去获取资源
    404 Not Found(没有找到)。

    伴随着数字状态码,HTTP还会法功一条解释性的“原因短语 ”:

    • 200 OK
    • 200 Document attached
    • 200 Success
    • 200 All,s cool, dude

    5、报文

    HTTP报文仅包含两种,从Web客户端发往服务器的称之为请求报文(request message)反之称之为响应报文(response message),HTTP报文主要包含三个部分:

    • 起始行

      报文的第一行;在请求报文中用来说明要做什么,在响应报文中说明出现了设么样的状况。

    • 首部字段

      起始行后面的零个或多个首部字段。每个首部字段都包含一对用分割 的键值对 。首部以一个空行结束。

    • 主体

      空行之后就是可选的报文主体了,其中包含了所有类型的数据 。

    简单的报文实例:

    请求报文

    GET /index.html HTTP/1.0
    User-agent: Mozilla/4.75 [en] (win7;U)
    Host: www.baidu.com
    Accept: text/html,image/gif,image/jpeg
    
    

    响应报文

    HTTP/1.0 200 OK
    Date: Sun,01 Oct 2018 23:25:11 GMT
    Server: Apache/3.0.1 BSafe-SSL/1.38 (Unix)
    Last-modifed: Tue,40 Jul 2018 09:15:33 GMT
    Content-length: 506
    Content-type: text/html
    
    <HTML>
    <HEAD><TITLE>index page</TITLE></HEAD>
    <BODY>
    <H1>hello word</H1>
    </BODY>
    </HTML>
    

    6、连接

    6.1 TCP/IP

    HTTP 应用层

    TCP 传输层

    IP 网络层

    因特网特有的链路接口 数据链路层

    物理网络硬件 物理层

    6.2 连接、IP地址以及端口号

    http://192.168.2.100:8080/index.html IP地址:192.168.2.100 端口号:8080

    http://www.baidu.com/index.html:这里主机名为(www.baidu.com)可以通过域名服务(Domain Name Service,DNS)的机制方便的将主机名转换为IP地址,端口号的话默认为80。

    7、协议版本

    1.0 、1.1 、2.0、 3.0

    8、Web的机构组件

    • 代理
    • 缓存
    • 网关
    • 隧道
    • Agent代理
  • 相关阅读:
    Typescript 学习笔记一:介绍、安装、编译
    css 如何“画”一个抽奖转盘
    isBalanced函数实现
    链表(单向链表,双向链表)
    IDEA 插件的安装和使用
    leetCode算法------>>>>数组
    二维数组
    IDEA (2019.3) 字体编码和基本设置
    线性结构和非线性结构
    Java反射
  • 原文地址:https://www.cnblogs.com/nm666/p/10301547.html
Copyright © 2011-2022 走看看