概念
- 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
动词 路径 协议/版本
2Key1: value1
2Key2: value2
2Key3: value3
2Content-Type: application/x-www-form-urlencoded
2Host: www.sina.com
2User-Agent: curl/7.54.0
3空行
4要上传的数据
-
注意:
- 请求格式包括四部分,至少包括三部分;
- 第 1 部分动词为请求方法;路径包括「查询参数」,但不包括「锚点」;
- 第 2 部分格式为
key: value
; - 第 3 部分为空行
\n
; - 第 4 部分可以为空;
- 请求没有写路径,默认路径为
/
; - 第 2 部分的
Content-Type
标注了第 4 部分数据的格式;
响应
-
响应格式
1
协议/版本号 状态码 状态解释
2Key1: value1
2Key2: value2
2Key3: value3
2Content-Length: 17931
2Content-Type: text/html
3空行
4要下载的内容
-
注意:
用 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)的头信息;
-
$ curl -v
显示通信过程
$ curl -v www.sina.com
键入以上命令可显示 HTTP 整个通信过程;
网友评论