关于 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