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

    1.MIME

    1.1MIME(Multipurpose Internet Mail Extension多用途因特网邮件扩展),用来标记多媒体内容,说明白点,就是用来描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。

    1.2web服务器会为所有的HTTP对象附加一个MIME类型(见图)

    1.3MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一条斜杠来分隔。

    • HTML格式的文本文档由  text/html类型来标记。
    • 普通的ASCII文本文档由  text/plain类型来标记。
    • JPEG版本的图片为   image/jpeg类型。
    • GIF格式的图片为  image/gif类型。
    • Apple的QuickTime电影为   video/quicktime类型。
    • 微软的PowerPoint演示文件为 application/vnd.ms-powerpoint类型。

    MIME类型有数百种,不在此一一举例。更详细的请看http://www.w3school.com.cn/media/media_mimeref.asp

    2.URL

    2.1每个web服务器资源都有一个名字,这样才可以让别人找到他。这个名字就是统一资源标示符(Uniform Resource Identifier)。URI就要是邮箱地址一样,在世界范围之内唯一标识并定位信息资源。

    下面就是一个url   http://www.joes-hardware.com/specials/saw-blade.gif

    2.2URI的第一种形式URL

    URL的标注格式,这种格式包含三个部分

    • URL的第一部分说明所使用的方案(scheme),说明访问资源所使用的协议类型,通常使用HTTP协议,这一分部就是http://
    • 这一部分通常给出服务器的因特网地址(比如,www.joes-hardware.com
    • 指定web服务器上的某个资源(比如,/specials/saw-blade.gif)

    现在几乎所有的URI都是URL

    2.3URI的第二种形式统一资源名(URN)

    URN是作为特定内容的唯一名称使用的,与目前的资源所在地无关。使用这些与位置无关的URN,就可以将资源四处搬移。通过URN,还可以用同一个名字通过多种网络访问协议来访问资源。
    比如,不论因特网标准文档RFC 2141位于何处(甚至可以将其复制到多个地方),都可以用下列URN来命名它:urn:ietf:rfc:2141URN仍然处于试验阶段,还未大范围使用。

    3 事物

    3.1 一个HTTP事务由一条(从客户端发往服务器的)请求命令和一个(从服务器发回客户端的)响应结果组成。这种通信是通过名为HTTP报文(HTTP message)
    的格式化数据块进行的,如图1-5所示。

    3.2 方法

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

    5中常用的HTTP方法:

    3.3 状态码

    每条HTTP响应报文返回时都会携带一个状态码。告知客户端请求是否成功,或者是否需要采取其他状态码。
    常见的HTTP状态码
    • 200,OK文档正确返回
    • 302,重定向。到其他地方获取资源
    • 404,NOt Found未找到。无法找到这个资源。

    4 报文

    4.1HTTP报文是由一行一行的简单字符串组成的。HTTP报文都是纯文本,不是二进制代码,所以人们可以很方便地对其进行读写。

    来看一个简单的HTTP报文

    4.2从Web客户端发往Web服务器的HTTP报文称为请求报文(request message)。从服务器发往客户端的报文称为响应报文(response message),此外没有其他类型的HTTP报文。HTTP请求和响应报文的格式很类似。

    4.3HTTP报文分为三个部分:

    4.3.1 起始行(命令)

    报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。

    4.3.2 首部字段

    起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首部字段和添加新行一样简单。

    4.3.3 主体

    空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给Web服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含文本。

    5 连接

    讨论一下报文是如何通过传输控制协议(Transmission Control Protocol,TCP)连接从一个地方搬移到另一个地方去的。

    5.1 TCP/IP

    HTTP是个应用层协议。HTTP无需操心网络通信的具体细节;它把联网的细节都交给了通用、可靠的因特网传输协议TCP/IP。

  • 相关阅读:
    for...in 循环对象原型链问题
    移动端表单禁用软键盘
    将一个普通数组映射为对象数组
    npm install命令详解
    Elasticsearch High Level REST Client
    Guava: Google Core Libraries for Java
    Java Interview Programming Questions
    2017 OWASP TOP 10
    17 Popular Java Frameworks in 2018
    10 Popular PHP frameworks in 2019
  • 原文地址:https://www.cnblogs.com/huanhuan8808/p/3335308.html
Copyright © 2011-2022 走看看