web应用请求过程
TCP三次握手、四次挥手
用户输入url: 360.cn>DNS域名解析>建立TCP链接>发送HTTP Request>web服务器响应>应用服务器响应>关闭TCP链接>用户浏览器渲染页面
HTTP协议
规定浏览器和服务器之间相互通信的规则
万维网交换信息的基础
允许将HTML文档从Web服务器传送到Web浏览器
特点:
HTTP协议建立在TCP协议基础之上
HTTP协议是无状态的
http状态码
200:客户端请求成功,最常见的内容。
204:请求处理成功,但没有资源返回(页面不更新)
206:客户端进行了范围请求(资源一部分请求).
301:永久性重定向,表示资源已经被分配新的URL,以后应使用资源现在所指的URL.
302:临时性重定向,表示资源已经被分配了新的URI,希望用户(本次)能使用新的URL
304:服务器资源未改变,可直接使用未过期的缓存(无关)
400:请求语法中存在报文错误,需要修改再次发送
401:该状态码表示需要通过HTTP认证
403:请求访问的资源服务器拒绝
404:服务器上没有找到资源
500:服务器内部错误(PHP.INI关闭了display errors)
503:服务器当前不能处理客户端的请求(超载或停机维护)
HTTP首部
HTTP协议请求与响应必须包含HTTP首部
HTTP首部为客户端和服务端分别处理清求和响应提供所需的信息
首部字段
通用、请求、响应、实体首部字段
通用>
Cache-Control:控制缓存
connection:连接的管理
Date :创建报文的日期时间
请求>
Host:请求资源的主机和端口号
User-Agent:客户端操作系统,浏览器等其他信息
Referer:访问当前页面的上一个页面
Cookie:请求者的身份凭证
Accept:客户端希望接收的哪些MIME类型消息
Accept-Charset:指定客户端接收的字符集
响应>
Server:服务器所使用的Web服务名字
set-Cookie:向客户端设置Coolie
Last-Modified:告诉浏览器资源改的最后时间
Content-Length:正文长度
Location:引导用户转向与请求URI不同的资源
实体>
Allow:通知客户端能够支持的HTTP方法
Content-Encoding:告知客户端服务器对实体主体部分采用的字符编码
Content-Language:告知客户端实体部分采用的语言
Content-Length:表明实体主体部分大小
Content-Location:给出与报文主体部分相对应实际的URI
Content-Type:说明实体主体部分对象的媒体类型
HTTP认证
basic认证>
用途:小型网络认证(如路由器)
特点:base64编码后明文传输用户名及口令
优点:几乎所有浏览器都支持
缺点:安全性没有保障
HTTP OAuth(授权第三方认证)>
Cookie Auth>
用户请求网站
网站要求提供用户名和密码进行认证
认证成功后,网站将返回一个Cookie信息
用户再次登录,如果没有清除Cookie,则不需要再进行认证SSL/TLS
用于在两个通信应用程序之间提供保密性和数据完整性的通信协议
用于在两个通信应用程序之间提供保密性和数据完整性的通信协议
HTTP/HTTPS区别
HTTP>
明文传输,端口:80
HTTPS>
加密传输,端口:443
HTTP+SSL>>>TLS 建立在TLS认证上的HTTP协议