HTTP
- 超文本传输协议
- URL格式
- 请求报文/响应报文的具体组成
- 使用快捷方式访问网页
- touch 文件名.webloc
- 使用文本编辑文件写入代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>URL</key>
<string>这里写网址</string>
</dict>
</plist>
-
POST
- 请求 在charles中的表现
- 响应 在charles中的表现
- wireshark
- post请求 request header中的数据
- post请求 request body中的数据
- response header中的数据
- response body中的数据
- post请求 request header中的数据
- 请求 在charles中的表现
-
GET
-
请求 在charles中的表现
-
响应 在charles中的表现
-
wireshark
-
get请求 request header中的数据
1. get请求没有消息体, 所以没有Data部分
2. 虽然get没有消息体, 但是请求头后边仍然会有回车换行 /r/n
-
response header中的数据
-
response header中的数据
-
-
-
完整的http请求流程抓包
- client 申请建立连接(第一次握手)
- server 同意建立连接(第二次握手)
- client 确认收到2(第三次握手)
- client 发送http的get请求(包括http中的信息, 77字节)
- server 确认收到4
- server 给client 发送请求的数据(前:1452字节)
- server 给client 发送请求的数据(后:1329字节)
- client 确认收到6
- client 确认收到7
- client 断开连接 (第一次挥手)
- server 断开连接 (第二次挥手)
- server 断开连接 (第三次挥手)
- client 断开连接 (第四次挥手)
-
HTTP 的连接的复用
HTTP连接是不可以复用的, 因为假如一个连接复用了, A 发送消息AA 给S服务器, 在消息返回前 B 发送消息BB给S服务器, 此时A的回复消息, 不知道该给A 还是给B. 在HTTP1.1中, A 发送消息AA 给S服务器, 在消息返回前是不允许B复用这个连接的. -
常用的请求方法
- GET 和 HEAD 和 OPTIONS 请求没有请求体(body);
- POST 和 PUT 和 PATCH 和 DELETE 和 TRACE 有请求体(body);
-
请求头和响应头
-
请求体编码方式
-
multipart/form-data与x-www-form-urlencoded区别
- multipart/form-data:通常用来上文件数据;
- x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的, 不能用来上传文件。
-
样式
- 字段分析
- multipart/form-data
- application/x-www-from-urlencoded
- 字段分析
-
-
跨域
- 浏览器访问页面时候,提示以下错误, 表示跨域访问了
- 解决方案
response.setHeader(“Access-Control-Allow-Origin”, “*”);
- 浏览器访问页面时候,提示以下错误, 表示跨域访问了
-
Cookie
-
后端服务器设置Cookie
HttpSession session = request.getSession(); session.setAttriburte("username", "李超群"); session.setAttriburte("password", "11111");
此时设置完cookie时候, 浏览器访问这个链接, 就会出现
-
之后再访问浏览器的其他页面时候, 就会携带cookie
-
代理服务器
- 代理服务器的使用