1. 在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP协议。
2. HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。绝大多数Web开发都是建立在HTTP协议之上的Web应用。
HTTP URL (URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息)的格式如下:
http://host[":"port][abs_path]
host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口80;abs_path指定请求资源的URI;如果URL中没有给出abs_path,那么当它作为请求URI时,必须以“/”的形式给出
3. HTTP协议的请求:
请求有三部分组成:请求行、消息报头、请求正文。
请求行组成:请求方法+统一资源标识符+HTTP协议版本(Method + Request-URI + HTTP-Version)
一般请求方法有:GET 请求获取Request-URI所标识的资源;POST 在Request-URI所标识的资源后附加新的数据。
HTTP的八种请求方式:
1.GET 请求获取Request-URI所标识的资源
2.POST 在Request-URI所标识的资源后附加新的数据
3.HEAD 请求获取由Request-URI所标识的资源的响应消息报头
4.PUT 请求服务器存储一个资源,并用Request-URI作为其标识
5.DELETE 请求服务器删除Request-URI所标识的资源
6.TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
7.CONNECT 保留将来使用
8.OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求
4. HTTP协议的响应:
服务器向浏览器返回HTTP响应,响应包括:
响应代码:200表示成功,3xx表示重定向,4xx表示客户端发送的请求有错误,5xx表示服务器端处理时发生了错误;
响应类型:由Content-Type指定 以及其他相关的Header;通常服务器的HTTP响应会携带内容,也就是有一个Body,包含响应的内容,网页的HTML源码就在Body中。
一些常见的状态码:200 OK //客户端请求成功;400 Bad Request //客户端请求有语法错误,不能被服务器所理解;401 Unauthorized //请求未经授权;
403 Forbidden //服务器收到请求,但是拒绝提供服;404 Not Found //请求资源不存在;500 Internal Server Error //服务器发生不可预期的错误;
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
注意一下:Body的数据类型由Content-Type
头来确定,如果是网页,Body就是文本,如果是图片,Body就是图片的二进制数据。浏览器就是依靠Content-Type
来判断响应的内容是网页还是图片,是视频还是音乐。浏览器并不靠URL来判断响应的内容,所以,即使URL是http://example.com/abc.jpg
,它也不一定就是图片。
5. HTTP和HTTPS
1.HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
2.http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
3.http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
4.HTTPS的工作流程