网络基础
应用层
1.协议:协议是一种 “约定”,这种约定可以保证, 一端发送时构造的数据, 在另一端能够正确的进行解析, 就是ok的. 这种约定, 就是 应用层协议
http协议(超文本传输协议)
认识URL
平时我们俗称的 “网址” 其实就是说的 URL
一般80端口号不显示
urlencode和urldecode
像 / ? : 等这样的字符, 已经被url当做特殊意义理解了. 因此这些字符不能随意出现.
比如, 某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义.
转义的规则如下:
将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式
例如
http协议格式
http请求
1.首行:方法+url+版本
2.header:请求的属性, 冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束
3.Body:空行后面的都是正文,Content-Length来标识Body的长度;
http响应
1.首行:版本号+状态码+状态码解释
2.header和body和HTTP响应的header.Body一样
http的方法
其中最常用的就是GET方法和POST方法.
1.GET:一般通过url回显到浏览器上面,不安全
2.POST:一般通过正文,不会回显
3.从服务拿数据一般使用GET,当然,如果是从服务器上面拿大文件,用POST方法
4.从客户端数据提交到服务器:通过html表单指明提交方法以及收集用户数据转化成httprequest
http的状态码
1.#3xx重定向可以用于域名更新,直接老域名重定向到新域名。
2.301:永久重定向(把老域名客户全部搬到新域名)
3.302/307:从A跳到B(临时重定向)
http常见Header
Referer: 当前页面是由哪个页面跳转过来
Location:搭配3XX使用,告诉客户端接下来去哪里访问
Host:客户端告知服务器,客户端的主机端口
User-Agent:声明用户的操作系统和浏览器版本信息
http特征
1.简单快速
2无连接(有点像UDP)
3.无状态,不自己记录上一个网页
http-Cookie
请求响应
请求头:Cookie;
响应头:Set-Cookie;
起源
最初http设计是无状态协议,但是当服务器处理很多请求响应后,需要区分是不是同一个用户发起的。
简介
cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实现的一种数据存储功能。
cookie由服务器生成,发送给浏览器,浏览器把cookie以kv形式保存到某个目录下的文本文件内,下一次请求同一网站时会把该cookie发送给服务器。由于cookie是存在客户端上的,所以浏览器加入了一些限制确保cookie不会被恶意使用,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。
例如:浏览器中保存密码的功能就是由cookie设计的;