Url概念
url是统一资源定位符,顾名思义,指明资源的位置
url组成
格式由四部分组成:<协议>://<主机>:<端口>(没有端口使用默认端口)/<路径>(没有路径就指向主页)
用户浏览网页的方式
一种是在浏览器的地址窗口中输入要找的页面的url,一种是直接用鼠标点击一个网址链接
从输入网址到页面显示的过程
输入url
DNS解析ip地址 建立tcp连接 浏览器发出请求 服务器响应请求,返回页面 释放tcp连接 浏览器渲染显示页面http的特性
http是面向事物的,在应用层交换文件的基础
http是无连接的,http虽然使用的tcp的连接,但是交换http报文不需要建立http连接 http是无状态的,也就是服务器没有http请求的记忆的,不记得是否访问过这个页面,不管访问同一个页面几次都像第一次访问一样 http是面向文本的,报文的每一个字段都是不确定长度的ascll码串htttp1.0和http1.1区别
http1.0是非持续连接,也就是请求一次就建立一个tcp连接,完成就立即释放连接
http1.1是持续连接,也就是在请求之后连接仍然存在一段时间 持续连接有两种方式:一是非流水线方式,浏览器收到一个响应之后才能发送下一个请求, 二是流水线方式,浏览器在收到响应之前就可以发送请求,也就是可以持续不断的发送请求,而不必等待服务器的响应代理服务器
代理服务器是介于服务器和浏览器之间,既作为服务器响应请求,也作为浏览器发送请求
原理:将一些最近访问的请求和响应缓存在本地磁盘中,可以加快请求的响应速度同时减少通信量 过程:浏览器发送请求时,先和代理服务器建立tcp连接,然后向代理服务器发送请求; 代理服务器若存放了所请求对象,则响应请求,将对象返回给浏览器; 否则,代理服务器就代浏览器向服务器发出请求,与服务器建立连接,发出请求; 服务器响应请求,将请求对象返回给代理服务器; 代理服务器就将对象缓存在本地磁盘中,同时将请求对象返回个浏览器http报文结构
报文分类:一是请求报文,浏览器向服务器发送请求报文;二是响应报文,服务器向浏览器发送的响应报文
报文的组成:开始行,在请求报文中称为请求行,在响应报文中称为状态行;首部行,用来说明浏览器服务器和报文主体的一些信息;实体主体,可有可无 请求行组成:方法,请求资源的url,http版本 方法:GET,发送一个请求来取得服务器上的某一资源; POST,向指定的资源提交数据或者附加新的数据; PUT,和post类似,都是提交数据,但是指定了资源存储在服务器上的位置; HEAD,只请求页面的首部;DELETE,删除服务器上的某资源, OPTION,获取url所支持的方法,如果请求成功,会返回一个ALLOW的头包含类似“GET,POST”方法名的信息; TRACE,追踪请求报文的传输路径,让服务器将之前请求的通信还给浏览器; CONNECT,和代理服务器建立隧道协议,进行tcp通信 状态行组成:http版本,状态码,解释状态码的简单短语常见状态码及解释
1xx,通知消息;2xx,请求成功;3xx,重定向;4xx,客户端错误;5xx,服务器错误
100,请求已经接受,请继续发送剩余的部分请求; 200,请求成功,正常返回数据; 201,创建新资源; 202,尚未处理; 301,永久移动; 302,临时移动; 303,GET请求的临时移动; 304,上次请求之后网页从未修改; 400,语法错误,格式不对; 401,未授权; 403,禁止访问; 404,找不到相应资源; 500,常见服务器端错误; 503,服务器展示无法处理请求,可能是维护或者过载了cookie
cookie是服务器用来存放用户信息,追踪用户的足迹的;
cookie工作过程:首先用户登陆页面,服务器会为用户产生一个唯一的识别码,同时以此为索引在数据库中建立一个项目; 在响应报文中添加一个Set-cookie首部行,首部字段名是Set-cookie,值是唯一的识别码; 浏览器收到响应报文,在浏览器的cookie文件中添加一行,包含服务器主机名和Set-cookie的信息; 在用户再次登陆同一个网页时,会将请求报文中添加Cookie首部行,值和Set-cookie的值一样,这样就可以加载用户之前的信息同时追踪用户的踪迹。