一、Web及网络基础
1.通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运行的。而HTTP属于它内部的一个子集。
2.TCP/IP协议族按层次分为以下4层:
(1)应用层:预置了各类通用的应用服务。比如FTP、DNS以及HTTP。
(2)传输层:提供处于网络连接中的两台计算机之间的数据传输。有两种协议:TCP、UDP。
(3)网络层:处理网络上流动的数据包。其作用就是在众多选项内选择一条传输线路。
(4)链路层:处理网络的硬件部分。包括操作系统、设备驱动(网络适配器、网卡)以及光纤等。
3.IP 地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定地址。IP间的通信依赖MAC地址。
4.TCP三次握手策略(以后补充)
发送端首先发送一个带 SYN 标志的数据包给对方。接收端收到后,
回传一个带有 SYN/ACK 标志的数据包以示传达确认信息。最后,发
送端再回传一个带 ACK 标志的数据包,代表“握手”结束。
5.TCP协议还有将数据分割成报文段以及重组报文段的功能。
6.DNS(域名 《==》 ip地址) ARP (ip地址 《==》 MAC地址).
- URI(Uniform Resource Identifier)统一资源标识符
URL(UniformResource Locator)统一资源定位符
URI 用字符串标识某一互联网资源,而 URL 表示资源的地点(互联
网上所处的位置)。可见 URL 是 URI 的子集。
二、简单的http协议
1.HTTP是一种不保存状态,即无状态的协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。
2.告知服务器意图的http方法
(1)get:请求访问已被URI识别的资源。
(2)post:传输实体主体。
(3)put:传输文件(存在安全问题,一般不使用)。
(4)head:获取报文首部。
(5)delete:删除文件(一般不使用)
(6)options:询问支持的方法。
(7)trace:让web服务器将之前的请求通信环回给客户端(显示请求走过的路径)。
(8)connect:隧道代理。
3.keep-alive(长连接):只要任意一段没有明确提出断开连接,则保持TCP协议。
三、HTTP报文内的HTTP信息
1.HTTP报文大致可分为报文首部和报文主体两块。通常并不一定要有报文主体。
2.报文实体作为请求或相应的有效载荷数据(补充项)被传输,其内容由实体首部和实体主体组成。
htt报文的主体用于传输请求或响应的实体主体。
通常,报文主体等于实体主体。只有当传输中进行编码操作时,才会产生差异。
四、返回结果的HTTP状态
1.状态码类别
(1)1xx Infomation(信息性状态码):接收的请求正在处理
(2)2xx Success(成功状态码):请求正常处理完毕
(3)3xx Redirection(重定向状态码):需要进行附加操作以完成请求
(4)4xx Client Error(客户端错误状态码):服务器无法处理请求
(5)5xx Server Error(服务器错误状态码):服务器处理请求出错
2.常见状态码
200 OK 请求正常处理
204 No Content 请求处理成功,但没有资源返回
206 Partial Content 客户端进行了范围请求,而服务请成功执行了这部分的GET请求
301 Moved Permanently 永久重定向。表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI
302 Found 临时性重定向
400 Bad Request 请求报文中存在语法错误
401 Unauthorized 发送的请求需要有通过HTTP认证
403 Forbidden 对请求资源的访问被服务器拒绝了
404 Not Found 服务器无法找到请求的资源
500 Internal Server Error 服务器在执行请求时发生了错误
503 Service Unavailable 服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
五、HTTP首部
1.Http协议的请求和响应报文中必定含有HTTP首部。首部内容为客户端和服务器分别处理情前求和响应提供所需要的信息。
2.在请求中,http报文由方法、uri、http版本、http首部字段等部分构成。
3.在响应中,http报文由http版本、状态码、http首部3部分组成
4.请求url一般在通用首部中。
5.请求报文首部:请求行、请求首部字段、通用首部字段、实体首部字段、其他。
6.响应报文首部:状态行、响应首部字段、通用首部字段、实体首部字段、其他。
1.一个http请求在整个网络中的请求过程
当我们在浏览器地址栏输入www.baidu.com后,就会发起一个http请求,
(1)应用层的DNS服务会把域名转换为ip地址。
(2)传输层决定用哪种传输方式,是tcp还是udp。
(3)网络层报文首部会加上ip,决定这条请求该走哪条线路,ip表示网卡在网络中的通讯地址。
(4)数据链路层加上mac头,决定最终发送的网卡mac地址。
(5)物理层将数据转换为比特流。
(6)服务器再按照从底层到顶层一层层封装回去。