1.URL(统一资源定位符)
URL就是使用浏览器访问Web页面的时候需要输入的网页地址。
下面是URL的格式
登陆信息:指定用户名和密码作为从服务器端获取资源时必要的登陆信息(可选项)
服务器地址:待访问的服务器的地址,可以是上述的DNS可解析的名称,也可以是IPv4地址
端口号:指定服务器连接的网络端口号(可选项)
带层次的文件路径:指定服务器上的文件路径来定位特指的资源。从端口号(如果没有就从域名开始的第一个“/”到最后一个“/”是文件夹,最后一个“/”到“?”(如果没有“?”,就到“#”,如果没有“?”,也没有“#”,就到文件最后)是文件名)
查询字符串:针对已指定的文件路径内的资源。(?到#之间的)(可选项)
片段标识符:已获取资源中的子资源。(也称为锚)(可选项)
HTTP是无状态协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。但是随着Web的发展,诞生了Cookie。
1.HTTP请求:
HTTP请求的格式:
1.首行:以空格分隔。
(第一部分:请求方法(GET方法将提交的数据放在URL里,POST方法将提交的数据放在正文里);第二部分:URL;第三部分:版本号)
2.请求头信息header:每一条头信息都是以换行符分隔;每一条头信息都是一个键值对。
3.空行
4.正文(GET方法没有正文)。
2.HTTP响应:
HTTP响应格式:
1.首行:以空格分割
(第一部分:版本;第二部分:状态码;第三部分:状态码描述)
2.响应头:每一条信息以换行来进行间隔;每一条头信息都是一个键值对;
3.空行
4.正文。
3.请求方法
GET | 获取资源 |
POST | 传输实体主题 |
PUT | 传输文件 |
HEAD | 获得报文首部 |
DELETE | 删除文件 |
OPTIONS | 询问支持的方法 |
TRACE | 追踪路径 |
CONNECT | 要求用隧道协议连接代理 |
LINK | 建立和资源之间的联系 |
UNLINE | 断开连接关系 |
最常用的就是POST和GET方法。
POST和GET方法的区别:
1.GET会把请求的参数放在URL中(?开始就是参数,多个参数用&连接),POST会把参数放在正文中。
2.GET的请求放在URL中,所以传输是有限制的;POST请求放在正文中,所以可以传输大数据。
3.GET安全性较低,当登陆某网站的时候,用户名及密码会放在URL中,会被看到;POST就会放在正文中,安全性相对来说较高。
4.状态码
类别 | 原因短语 |
1xx | 接受的请求正在处理 |
2xx | 请求正常处理完毕 |
3xx | 需要进行附加操作以完成请求(重定向) |
4xx | 服务器无法处理请求(客户端错误) |
5xx | 服务器处理请求出错(服务器错误) |
5.运行过程
如果对TCP/IP协议有一定的了解了(上篇文章就是TCP/IP):
1.当你在浏览器中输入某个网址,按下回车键的时候;
2.浏览器会请求DNS服务器来映射IP地址(域名解析),如果输入的是IP地址,就不用解析;
3.知道IP地址以及端口之后,就会通过TCP来建立连接;
4.浏览器向服务器发送SYN请求;浏览器接收到服务器发来的SYN+ACK;浏览器向服务器发送ACK+请求报文;
5.服务器收到请求通知,向浏览器做出响应,并进行数据传输;
6.浏览器接收到数据;向服务器发送FIN断开请求;接收到服务器的ACK应答;接收到服务器的FIN请求;再向服务器发送ACK应答,断开连接。