http协议
建立连接
应用层的Web发出请求(http请求报文),经过传输层,TCP协议进行分割,在各报文上打上标记序号以及端口号再转发给网络层,在网络层,IP协议增加作为通讯地址的MAC地址转发给链路层。到达服务器端,一层一层去除首部。
客户端发出信息,想要浏览制定URL的WEB网站,经过DNS服务器,将URL转换为IP地址,HTTP协议发出请求报文,TCP协议将报文分割成多段,IP协议搜索服务器地址,一边中转一边传送,发送到服务器端之后,TCP协议将报文段重组,HTTP协议处理请求。
HTTP1.1支持的方法
GET 获取资源
POST 传输实体主体
PUT 传输文件
HEAD 获取报文首部
DELETE 删除文件
OPTIONS 询问支持的方法
TRACE 追踪路径
CONNECT 要求用隧道协议连接代理(加密,变成HTTPS)
Cookie
HTTP是无状态协议,不会保存已经发送过的信息,Cookie是为了保存信息
需要保留的信息,Cookie会根据服务器端响应报文中的一个叫做set-Cookie的首部字段,通知客户端存储Cookie,下次客户端向服务器发送报文,会自动在请求报文中添加Cookie,服务器接收到Cookie后会对比记录,得到这个客户端之前的状态信息
MIME标签,web服务器为所有的HTTP对象数据附加一个MIME,web浏览器收到HTTP文件时,会查看MIME,然后选择处理他的方法
URl(统一资源标识符)有两种,一种是URL(统一资源定位符),一种是URN(统一资源名)
URL结构分为三部分()
1、解决方案:一般是HTTP或HTTPS,访问资源使用的协议
2、第二部分是资源在因特网上的域名地址
3、指定服务器上的某个资源
URN
特定内容的唯一名字(使用并不多)
大多数情况下URL和URl一样
一次HTTP连接中除了WEB浏览器和WEB服务器的应用程序
代理:位于客户端和服务器间的HTTP实体
缓存:HTTP仓库,把常用的页面副本保存到缓存中
网关:连接其他应用程序的WEB服务器
隧道:对HTTP报文进行盲转发的特殊代理
Agent代理:发起自动HTTP请求的半智能WEB客户端
在URL中,有些不安全的字符需要使用转义字符,HTTP中的转义字符为%
HTTP中默认端口为80端口,HTTPS中默认端口为443端口
HTTP发送的报文
起始行:1、请求行,包含一个方法和一个URL还有HTTP的版本
响应行:承载了状态信息和操作结果数据
2、方法:
3、状态码
2开头表示成功。
3开头表示服务器端资源已经被移除。(进行重定向)
4开头表示客户端请求出错。
5开头表示服务器端出错
常见状态吗:200(成功) 401(未授权,需要账号密码)
404(服务器找不到指定URL资源)
PS:重定向常常用于自动跳转,从活动空间来看大概分两类:服务器内部跳转和服务器之间跳转。
服务器内部跳转常见于“登陆成功!5秒之后将自动进入首页”这种应用。而服务器之间跳转,种类稍微
多一些:
(1)从服务器内跳往外部服务器;
(2)从A服务器跳转到B服务器,接着跳转到C服务器;
(3) 从A服务器跳转到B服务器, 业务处理完毕之后又跳转到A服务器;
(4) 从用户浏览器向A服务器发送请求,在出口网关处进行重定向,如通过iptable之类,重定向到一个认证服务器B,返回一个认证登陆的页面,当用户输入了正 确的用户名和密码等,认证服务器B再通过http重定向到A服务器.
HTTP报文中的方法
GET:请求服务器发送某个资源
HEAD:只返回首部,不返回主体
用处:
1、在不获取资源的情况下获得某资源的情况
(如资源种类)
2、查看响应码,判断资源是否还存在
3、查看首部,判断资源是否被修改
PUT:向服务器写入文档,指定存放位置
POST:向服务器传输数据,不指定存放位置
OPTIONS:请求服务器告知支持哪些服务