写在前面:新手刚接触http,有很多东西记不住只得用这种方式帮助记忆。
1 HTTP介绍
- HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。
-
2 HTTP 工作原理
HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。
Web服务器有:Apache服务器,IIS服务器(Internet Information Services)等。
Web服务器根据接收到的请求后,向客户端发送响应信息。
HTTP默认端口号为80,但是你也可以改为8080或者其他端口。
3 HTTP 请求的格式
1 动词 路径 协议/版本
2 Key1: value1
2 Key2: value2
2 Key3: value3
2 Content-Type: application/x-www-form-urlencoded
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
3
4 要上传的数据
示例1:
POST / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: /
latiao: xxx
Content-Length: 10
Content-Type: application/x-www-form-urlencoded1234567890
示例2:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.54.0
Accept: /
Frank: xxxcurl -X POST -s -v -H "Frank: xxx" -- "https://www.baidu.com"
4 HTTP响应的格式
1 协议/版本号 状态码 状态解释
2 Key1: value1
2 Key2: value2
2 Content-Length: 17931
2 Content-Type: text/html
3
4 要下载的内容(此部分内容基本很长)
示例1:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 2443
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:14:05 GMT
Etag: "5886041d-98b"
Last-Modified: Mon, 23 Jan 2017 13:24:45 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/<!DOCTYPE html>
<html> <head> 后面太长,省略了……
示例2:
HTTP/1.1 302 Found
Connection: Keep-Alive
Content-Length: 17931
Content-Type: text/html
Date: Tue, 10 Oct 2017 09:19:47 GMT
Etag: "54d9749e-460b"
Server: bfe/1.0.8.18<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 后面太长,省略了……
5、通过Chrome浏览器来查看 请求、响应内容
-
1查看请求内容
先打开Chrome浏览器,按下F12打开开发者工具,单后点击选择network
我们先从看请求,
接着是响应
6、如何使用 curl 命令
curl是基于URL语法在命令行方式下工作的文件传输工具,它支持FTP,FTPS,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE及LDAP等协议。curl支持HTTPS认证,并且支持HTTP的POST,PUT等方法,FTP上传,kerberos认证,HTTP上传,代理服务器,cookies,用户名/密码认证,通过http代理服务器上传文件到FTP服务器等等,功能十分强大。
协议类型:[//服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID]
具体请看http://www.ruanyifeng.com/blog/2011/09/curl.html
因为我也还没搞明白:(