浏览器和服务器之间的“交流沟通”
什么是请求/响应
1.浏览器与服务器的“交流”
浏览器负责发送请求,服务器在80端口接收请求(80端口服务http)
服务器负责返回响应内容,浏览器负责下载响应内容。
其中,http的作用是知道浏览器和服务器进行沟通。
浏览器=======>发请求======>服务器
浏览器<====返回响应内容=====服务器
2.http请求部分
1. 格式
1 动词 路径 协议/版本
2 key1: value
2 key2: value
2 Content-Type: text/html; charset=utf-8
2 Host: www.baidu.com
2 Accept: text/html
3
4 要上传的数据(get第4部分为空,post存在第4部分)
1.请求最多包含4部分,最少3部分。
2.第3部分永远是回车
3.动词为请求方式
GET获取
POST上传
PUT 整体更新
DELETE 删除
PATCH 局部更新
4.路径包括查询参数但是不包含锚点。如果没有写路径,默认为/
5.Content-Type 标注了第4部分的格式
get请求例子
1 GET /W?E=2 HTTP/1.1
2 Host: www.baidu.com
2 User-Agent: curl/7.54.0
2 Accept: */*
2 key: value
3
post 请求
1 POST /path HTTP/1.1
2 Host: baidu.com
2 Accept: application/json
2 Content-Type:application/x-www-form-urlencoded
2 Conten-Length: 1000
3
4 username=uuu&age=34
post vs get
1.安全性方面
post方式提交的数据不会显示在URL中,安全性高
get方式提交的表单所有的信息都会在URL中看到,安全性不高
2.应用方面
post一般多用于向服务器传输数据。
get一般多用于向服务器查询、获取数据。
3.方式方面
post不管提交的内容有何变化,提交的URL不会发生变化,数据会发送到服务器。
get所有提交的数据都由k=value形式组成URL发送给服务器。
4 数据量方面
post理论上这个传输的数据量不受限制
而get数据越多时会受限。
- http响应部分
格式
1 协议/版本号 状态码 状态解释
2 key1: value
2 key2: value
2 Content-Type: text/html
2 Content-Length: 1234
3
4 响应内容(浏览器下载的内容)
例子
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