HTTP入门

1.什么是HTTP?

HTTP(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为普遍的一种网络传输协议,全部的WWW文件都必须遵照这个标准。linux

HTTP是一个基于TCP/IP通讯协议来传递数据(HTML 文件, 图片文件, 查询结果等)。浏览器

2.HTTP的工做原理是什么?是作什么用的?

HTTP 的做用就是指导浏览器和服务器如何进行沟通。服务器

简单的工做原理是:cookie

  • 浏览器负责发起请求
  • 服务器在 80 端口接收请求
  • 服务器负责返回内容(响应)
  • 浏览器负责下载响应内容

注意:

  1. HTTP是无链接:无链接的含义是限制每次链接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开链接。采用这种方式能够节省传输时间。
  2. HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据均可以经过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。(更多关于的MIME-type内容类型的信息,本身搜索)
  3. HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺乏状态意味着若是后续处理须要前面的信息,则它必须重传,这样可能致使每次链接传送的数据量增大。另外一方面,在服务器不须要先前信息时它的应答就较快。

3.HTTP 请求包括哪些部分?如何用Chrome开发者工具查看 HTTP 请求内容?

请求的格式:

第一部分:动词 路径 协议/版本
第二部分:Key1: value1
                 Key2: value2
                 ... ...
                 Key n: value n
第三部分:
第四部分:要上传的数据网络

注意:

  1. 请求最多包含四部分,最少包含三部分。(也就是说第四部分能够为空)
  2. 第三部分永远都是一个回车(\n),用来区分第二部分和第四部分
  3. 动词也是请求方法,有 GETPOST、PUT、PATCH、DELETE、HEAD、OPTIONS 等 (HTTP1.1)
  • GET: 从服务器获取内容
  • POST: 向服务器新增,上传内容
  • PUT: 总体更新,新上传的内容覆盖以前上传的全部内容
  • PATCH: 局部更新,将以前上传的部份内容替换为新上传的内容
  • DEMETE: 删除
  • HEAD: 相似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
  • OPTIONS: 容许客户端查看服务器的性能。

       咱们实际应用中经常使用到的只有 GETPOST,发出的请求包含数据就用 POST,不包含数据就用 GETcurl

  1. 这里的路径必须以 / 开头,它包括「查询参数」,但不包括「锚点」。若是你没有写路径,那么路径默认为 /
    工具

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

使用Chrome开发者工具查看 HTTP 请求内容

  1. 打开 浏览器
  2. 右键空白处,点击 [检查]
  3. 点击上面一排中的 [Network]
  4. 地址栏输入网址,回车,在 Network 中会出现不少请求,点击请求的名称。
  5. 点击 [Request Headers],点击 [view source],你就会看到请求的前三部分。
  6. 若是有请求的第四部分,那么在 FormData 或 Payload 里面能够看到。

4.HTTP 响应包括哪些部分,如何用Chrome开发者工具查看 HTTP 响应内容?

响应的格式:

第一部分: 协议/版本号 状态码 状态解释
第二部分:Key1: value1
                 Key2: value2
                 ... ...
                 Key n: value n
第三部分:
第四部分:要下载的内容测试

注意:

  1. 状态码要背,是服务器对浏览器说的话
        - 1xx: 表示信息,服务器收到请求,须要请求者继续执行操做,不经常使用
        - 2xx: 表示成功,操做被成功接收并处理;200:普通成功(GET) 204:建立成功(POST)
        - 3xx: 表示重定向,须要进一步的操做以完成请求;301:永久的搬走了,第二部分会给个location:是搬过去的地                   址 302:临时的不存在 304:这一次的内容和上一次的内容同样
        - 4xx: 表示客户端错误,请求包含语法错误或没法完成请求 404
        - 5xx: 表示服务器错误,服务器在处理请求的过程当中发生了错误 50二、500
    更多的状态码点这里
  2. 状态解释没什么用
  3. 第 2 部分中的 Content-Type 标注了第 4 部分的格式
  4. 第 2 部分中的 Content-Type 遵循 MIME 规范

如何用Chrome开发者工具查看 HTTP 响应内容

  1. 打开 浏览器
  2. 右键空白处,点击 [检查]
  3. 点击上面一排中的 [Network]
  4. 地址栏输入网址,回车,在 Network 中会出现不少请求,点击请求的名称。
  5. 点击 [Responses Headers],点击 [view source],你就会看到响应的前三部分。
  6. 响应的第四部分在 Responses 里面能够看到。

如何使用 curl 命令

curl命令是一个利用URL规则在命令行下工做的文件传输工具。它支持文件的上传和下载,因此是综合传输工具,但按传统,习惯称curl为下载工具。做为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。作网页处理流程和数据检索自动化,curl能够祝一臂之力。网络传输协议

语法:curl(选项)-- "请求的网址" (注意 -- 后有一个空格)

选项:此处仅仅举例,更多内容点这里

  1. -a : 上传文件时,附加到目标文件
  2. -d : HTTP POST方式传送数据
  3. -G : 以get的方式来发送数据
  4. -H : 自定义头信息传递给服务器
  5. -s : 静默模式。不输出任何东西
  6. -v : 使提取更加冗长/啰嗦。主要用于调试。
  7. -X : 指定什么命令
    ... ...

使用
curl命令能够用来执行下载、发送各类HTTP请求,指定HTTP头部等操做。若是系统没有curl可使用yum install curl安装,也能够下载安装。curl是将下载文件输出到stdout,将进度信息输出到stderr,不显示进度信息使用--silent选项。对于测试来说,它是Web相关测试很是实用的工具,包括debugging,使用起来很是方便。


这只是HTTP入门,还有不少知识本文没有提到,后期会继续补充,若是本文对你有帮助,请推荐给更多须要帮助的人。

相关文章
相关标签/搜索