关于 HTTP 入门

作者: leown | 来源:发表于2018-10-25 17:23 被阅读3次

    概念

    • HTTP (Hyper Text Transfer Protocol)

    HTTP 超文本传输协议HyperText Transfer Protocol)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

    • WWW (World Wide Web)

    万维网 是一个由许多互相链接的超文本组成的系统,通过互联网访问
    万维网并不等同互联网,万维网只是互联网所能提供的服务其中之一.

    • URI (Uniform Resource Identifier)
    • URN (Uniform Resource Name)

      ISBN: 9787115275790 就是一个 URN,通过 URN 你可以确定一个「唯一的」资源,ISBN: 9787115275790 对应的资源的是《JavaScript 高级程序设计(第三版)》这本书。你去是介绍任何一个图书馆、书店,他们都知道是这本书。

    • URL (Uniform Resource Locator)
    URL 的常见组成
    https://www.baidu.com/s?wd=hello&rsv_spt=1#5 就是一个 URL,通过 URL 你可以确定一个「唯一的」地址(网址)。
    • DNS (Domain Name System)
    • 输入域名
    • 输出 IP
    • HTML (HyperText Markup Language)

    超文本标记语言 是一种用于创建网页的标准标记语言。

    Server + Client + HTTP

    交互的过程

    • Client(浏览器) 对 Server 发起请求
    • Server 在 80 端口接收请求
    • Server发出响应
    • Client(浏览器) 接收下载响应

    HTTP

    • HTTP的作用就是指导服务器和客户端如何进行沟通
    • HTTP 基于 TCP
      HTTP 是应用层的协议,TCP 是传输层的协议,客户端向服务端发送一个HTTP请求时,需要先与服务端建立 TCP 连接(三次握手)

    请求

    • 请求方法(动作)

    GET:向指定的资源发出“显示”请求。使用 GET 方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中。
    POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。
    HEAD:与 GET 方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。
    PUT:向指定资源位置上传其最新内容。
    DELETE:请求服务器删除 Request-URI 所标识的资源。
    TRACE:回显服务器收到的请求,主要用于测试或诊断。
    OPTIONS:这个方法可使服务器传回该资源所支持的所有 HTTP 请求方法。用'*'来代替资源名称,向Web服务器发送 OPTIONS 请求,可以测试服务器功能是否正常运作。
    CONNECT:HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。通常用于 SSL 加密服务器的链接(经由非加密的 HTTP 代理服务器)

    • 请求格式

    1 动词 路径 协议/版本
    2 Key1: value1
    2 Key2: value2
    2 Key3: value3
    2 Content-Type: application/x-www-form-urlencoded
    2 Host: www.sina.com
    2 User-Agent: curl/7.54.0
    3 空行
    4 要上传的数据

    • 注意:

    1. 请求格式包括四部分,至少包括三部分;
    2. 第 1 部分动词为请求方法;路径包括「查询参数」,但不包括「锚点」;
    3. 第 2 部分格式为 key: value
    4. 第 3 部分为空行 \n
    5. 第 4 部分可以为空;
    6. 请求没有写路径,默认路径为 /
    7. 第 2 部分的 Content-Type 标注了第 4 部分数据的格式;

    响应

    • 响应格式

    1 协议/版本号 状态码 状态解释
    2 Key1: value1
    2 Key2: value2
    2 Key3: value3
    2 Content-Length: 17931
    2 Content-Type: text/html
    3 空行
    4 要下载的内容

    • 注意:

    1. 关于 状态码

    2. 第 2 部分中的 Content-Type 标注了第 4 部分的格式;

    3. 第 2 部分中的 Content-Type 遵循 MIME 规范

    4. 第 3 部分为空行 \n

    用 Chrome 开发者工具查看 HTTP 的请求和响应


    其他开发者工具大同小异

    $curl 命令查看 HTTP 的请求和响应

    • command URL,故命令名为 curl
    • curl 是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示"标准输出"上面;
    • $ curl xxx 查看网页源代码
      $ curl www.sina.com //此网页代码较短
    • 添加-o [文件名]下载网页内容;
      $ curl -o sina www.sina.com
    • curl -L 的自动跳转
      $ curl -L www.sina.com
      有些网页是自动跳转的,键入上面的命令,则会自动跳转到 www.sina.com.cn
    • $ curl -i $ curl -I '' 显示头信息
      $ curl -i www.sina.com
      键入以上命令可连同网页代码一起显示 HTTP 响应(Response)的头信息;

    $ curl -I www.sina.com
    键入以上命令只显示 HTTP 响应(Response)的头信息;

    相关文章

      网友评论

        本文标题:关于 HTTP 入门

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