饥人谷技术博客

关于 HTTP 入门

2018-10-25  本文已影响3人  leown

概念

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

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

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

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

Server + Client + HTTP

交互的过程

HTTP

请求

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 的请求和响应

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

上一篇下一篇

猜你喜欢

热点阅读