【网络】HTTP协议(2)
- 一. HTTP协议
- 1.认识“方法”
- GET方法
- POST方法
- GET与POST的区别
- 2.常见状态码
- 状态码小结
- 3.认识“Header”
- 4.构造HTTP请求(使用Postman)
一. HTTP协议
1.认识“方法”
https://i-blog.csdnimg.cn/direct/452f3fedc96d47dda93df513a3f1d834.png" alt="在这里插入图片描述" />
GET方法
GET请求的特点:URL的query string通常不为空;body部分为空。
POST方法
POST ⽅法也是⼀种常⻅的⽅法. 多⽤于提交⽤⼾输⼊的数据给服务器(例如登陆⻚⾯).
POST请求的特点: URL的query string一般为空;body部分一般不为空,body 内的数据格式通过 header 中的 Content-Type
指定. body 的⻓度由 header 中的 Content-Length
指定.
GET与POST的区别
- GET 的 body ⼀般为空, 需要传递的数据通过 query string 传递, POST 的 query string ⼀般为空, 需要传递的数据通过 body 传递;
- GET 请求⼀般是幂等的, POST 请求无要求.(如果多次请求得到的结果⼀样, 就视为请求是幂等的).
- GET 可以被缓存, POST 不能被缓存. (这⼀点也是承接幂等性).
- 语义不同: GET ⼀般⽤于获取数据, POST ⼀般⽤于提交数据.
2.常见状态码
状态码表⽰访问⼀个⻚⾯的结果. (是访问成功, 还是失败, 还是其他的⼀些情况…).
- 200 OK :访问成功;
- 404 NOT FOUND :没有找到资源;
- 403 Forbidden:访问被拒绝,没有权限;
- 405 Method Not Allowed :所使用的方法不被支持;
- 500 Internal Server Error :服务器挂了;
- 504 Gateway Timeout:访问服务器超时,可能是服务器挂了,也有可能网络中断;
- 302 Move temporarily :临时重定向,响应报⽂的 header 部分会包含⼀个 Location 字段, 表⽰要跳转到哪个⻚⾯.
- 301 Moved Permanently:永久重定向. 当浏览器收到这种响应时, 后续的请求都会被⾃动改成新的地址.
状态码小结
https://i-blog.csdnimg.cn/direct/bdfbc963aa4147b8a9fd12cf7a7831a1.png" alt="在这里插入图片描述" />
3.认识“Header”
https://i-blog.csdnimg.cn/direct/061ae41d28a74f8b93113a1cdebb234f.png" alt="在这里插入图片描述" />
比如这份请求头,
Host
:表⽰服务器主机的地址和端⼝. (此处DNS域名解析)Content-Length
:表⽰ body 中的数据⻓度.Content-Type
:表⽰请求的 body 中的数据格式.
常见选项:application/json
(数据为 json 格式)、application/x-www-form-urlencoded
(可以认为是将query string放到了body中)、multipart/form-data
(通常用于提交图片/文件).User-Agent
(简称 UA) :表示浏览器/操作系统的属性.Referer
:表⽰这个⻚⾯是从哪个⻚⾯跳转过来的.Cookie
: 往往可以通过这个字段实现 “⾝份标识” 的功能.
https://i-blog.csdnimg.cn/direct/8b78bd6da8494d298a19f9ccfe077293.png" alt="在这里插入图片描述" />
关于Cookie的几个结论:
- Cookie从哪里来:服务器返回给浏览器的,通常是首次访问/登陆成功之后;
- Cookie到哪里去:Cookie会存储在本地主机的硬盘上,后续每次访问服务器都带上Cookie;不同的客户端,保存的Cookie是不同的,即使是同一个主机,使用不同的浏览器,Cookie大概率也不同。
- Cookie中存什么:键值对格式的数据(程序员自定义);
- Cookie在浏览器这边如何组织:在硬盘本地保存,是按照不同的域名为维度分别存储;有一组用来访问百度,一组用来访问搜狗…
- Cookie的用途是什么:用来在客户端保存数据,最重要的数据就是用户的身份标识。
4.构造HTTP请求(使用Postman)
选择方法,输入URL,点击SEND,就可以构造出相应的请求。
https://i-blog.csdnimg.cn/direct/5bb00fdfc5b74abd9559674829f9a376.png" alt="在这里插入图片描述" />
还可以选择构造相应编程语言的代码:
- Java常用的是OkHttpClient.
https://i-blog.csdnimg.cn/direct/4e625a9392394958b8fdf113fe241551.png" alt="在这里插入图片描述" />