一、http协议概述
1.OSI和TCP/IP的体系结构
(1)OSi七层体系结构:应用层、表示层、会话层、运输层、网络层、数据链路层、物理层.
(2)TCP/IP体系结构:应用层、运输层、网际层、网络接口层.
2.http协议简介
* Http(hypertext transfer protocol 超文本传输协议),是tcp/ip协议的一个应用层协议,
用于定义web浏览器与web服务器之间交换数据的过程.
* 版本:* HTTP1.0 客户端与web服务器建立连接后,只能获得一个web资源.
* HTTP1.1 允许客户端与web服务器建立连接后,在一个连接上获取多个web资源.
3.http协议主要特点
* 支持客户/服务器模式.
* 简单快速:客户请求服务时,只需传送请求方法和路径,请求方法主要有GET,HEAD,POST.
* 灵活:http允许传输任意类型的数据对象,正在传输的类型 由Content-type标记.
* 无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完请求后,并收到客户的应答后,就断开连接,节省时间.
* 无状态:HTTP协议是无状态协议。
无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,
这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
4.URL详解
URL是一种特殊类型的uri,包含了用于查找某个资源的足够信息.
格式如下:http://host[:port][abs_path]
例如:http://www.itcast.com:80/beeradvice/select/beer1.html
*http:// 采用那种协议进行本次网络访问.
*www.itcast.com 服务器的唯一域名,映射到一个IP地址.
*80 断口号,访问服务在服务器端绑定的断口号,若不指定,http协议默认断口为80.
*beeradvice/select/ 路径,一般用来表示主机上的一个目录或文件地址.
*beer1.html 资源名称,资源是本地计算机上的文件.
二、HTTP请求
定义:客户端连接上服务器后,向服务器请求某个web资源,称为客户端向服务器发送了一个HTTP请求.
分类:请求行、多个请求头(或称消息头)、请求体(实体内容,与请求头隔一个空行).
1.请求行:描述客户端的请求方式、请求资源的名称,以及使用的HTTP协议版本号.
格式:请求方法 资源路径 协议
例如:GET /day04/1.html HTTP/1.1
请求方式:常用的有GET POST. 其它的还有HEAD,OPRIONS,PUT等
GET与POST区别主要表现在数据传递上.
GET请求方式:请求内容追加在URL之后,而URL的长度有限制1k
POST请求方式:可以在请求的请求体(实体内容)中向服务器发送数据,传送的数据量无限制.
2.请求头
*Accept:浏览器通知服务器,浏览器可以接受的数据类型.
*Accept-charset:浏览器通知服务器,浏览器支持的字符集.
*Accept-Encoding:浏览器通知服务器,浏览器支持的压缩格式.
*Accept-Language:浏览器通知服务器,浏览器支持的语言环境.
*Host:浏览器通知服务器,浏览器访问的服务器的主机名.
*If-Modified-since:浏览器询问服务器,浏览器本地是否修改过.
*Authorization:请求报头域主要用于证明客户端有权查看某个资源.
当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),
可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。
*Referer:浏览器通知服务器,浏览器当前页来自哪个页面.(常用于防盗链)
*user-agent:浏览器通知服务器,浏览器端的基本信息.
*connection:浏览器保持服务器,是否保持连接状态.
*Date:浏览器通知服务器,浏览器端的时间.
3.请求体
请求体与请求头之间存在一个空行
三、HTTP响应
定义:一个http响应代表服务器向客户端回送的数据.
分类:响应行(或状态行)、响应头(或消息头)、响应体(实体内容)
1.响应行
响应行用于描述服务器对请求的处理结果.
格式:协议 状态码 状态信息
例如:HTTP1.1 200 OK
状态码:
*1xx:服务器通知浏览器,服务器还没有处理完成.
*2xx:服务器通知浏览器,服务器已经处理完成.
*200:处理完成.
*3xx:服务器通知浏览器,服务器还需要浏览器进一步处理来完成整个操作.
*302:服务器通知浏览器需要进一步操作,从http响应头(location)获得进一步操作的资源.
*304:服务器通知浏览器当前资源没有修改,从缓存中获取.
*4xx:服务器通知浏览器,浏览器发送数据有误.
*400 Bad Request :客户端请求有语法错误,不能被服务器所理解.
*401 Unauthorized:没有权限.
*403 Forbidden:服务器收到请求,但是拒绝提供服务.
*404 Not Found:找不到资源.
*5xx:服务器通知浏览器,服务器出现异常.
*500 Internal Server Error:服务器异常.
*503 Server Unavailable:服务器未响应.
2.响应头: 可以称为消息头,主要用于描述服务器的基本信息,以及数据的描述,
服务器通过这些数据的描述信息,可以通知客户端如何处理等一会它回送的数据.
3.响应体:服务器响应浏览器的所有的内容.与响应体之间要有一个空行.
1.OSI和TCP/IP的体系结构
(1)OSi七层体系结构:应用层、表示层、会话层、运输层、网络层、数据链路层、物理层.
(2)TCP/IP体系结构:应用层、运输层、网际层、网络接口层.
2.http协议简介
* Http(hypertext transfer protocol 超文本传输协议),是tcp/ip协议的一个应用层协议,
用于定义web浏览器与web服务器之间交换数据的过程.
* 版本:* HTTP1.0 客户端与web服务器建立连接后,只能获得一个web资源.
* HTTP1.1 允许客户端与web服务器建立连接后,在一个连接上获取多个web资源.
3.http协议主要特点
* 支持客户/服务器模式.
* 简单快速:客户请求服务时,只需传送请求方法和路径,请求方法主要有GET,HEAD,POST.
* 灵活:http允许传输任意类型的数据对象,正在传输的类型 由Content-type标记.
* 无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完请求后,并收到客户的应答后,就断开连接,节省时间.
* 无状态:HTTP协议是无状态协议。
无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,
这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
4.URL详解
URL是一种特殊类型的uri,包含了用于查找某个资源的足够信息.
格式如下:http://host[:port][abs_path]
例如:http://www.itcast.com:80/beeradvice/select/beer1.html
*http:// 采用那种协议进行本次网络访问.
*www.itcast.com 服务器的唯一域名,映射到一个IP地址.
*80 断口号,访问服务在服务器端绑定的断口号,若不指定,http协议默认断口为80.
*beeradvice/select/ 路径,一般用来表示主机上的一个目录或文件地址.
*beer1.html 资源名称,资源是本地计算机上的文件.
二、HTTP请求
定义:客户端连接上服务器后,向服务器请求某个web资源,称为客户端向服务器发送了一个HTTP请求.
分类:请求行、多个请求头(或称消息头)、请求体(实体内容,与请求头隔一个空行).
1.请求行:描述客户端的请求方式、请求资源的名称,以及使用的HTTP协议版本号.
格式:请求方法 资源路径 协议
例如:GET /day04/1.html HTTP/1.1
请求方式:常用的有GET POST. 其它的还有HEAD,OPRIONS,PUT等
GET与POST区别主要表现在数据传递上.
GET请求方式:请求内容追加在URL之后,而URL的长度有限制1k
POST请求方式:可以在请求的请求体(实体内容)中向服务器发送数据,传送的数据量无限制.
2.请求头
*Accept:浏览器通知服务器,浏览器可以接受的数据类型.
*Accept-charset:浏览器通知服务器,浏览器支持的字符集.
*Accept-Encoding:浏览器通知服务器,浏览器支持的压缩格式.
*Accept-Language:浏览器通知服务器,浏览器支持的语言环境.
*Host:浏览器通知服务器,浏览器访问的服务器的主机名.
*If-Modified-since:浏览器询问服务器,浏览器本地是否修改过.
*Authorization:请求报头域主要用于证明客户端有权查看某个资源.
当浏览器访问一个页面时,如果收到服务器的响应代码为401(未授权),
可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。
*Referer:浏览器通知服务器,浏览器当前页来自哪个页面.(常用于防盗链)
*user-agent:浏览器通知服务器,浏览器端的基本信息.
*connection:浏览器保持服务器,是否保持连接状态.
*Date:浏览器通知服务器,浏览器端的时间.
3.请求体
请求体与请求头之间存在一个空行
三、HTTP响应
定义:一个http响应代表服务器向客户端回送的数据.
分类:响应行(或状态行)、响应头(或消息头)、响应体(实体内容)
1.响应行
响应行用于描述服务器对请求的处理结果.
格式:协议 状态码 状态信息
例如:HTTP1.1 200 OK
状态码:
*1xx:服务器通知浏览器,服务器还没有处理完成.
*2xx:服务器通知浏览器,服务器已经处理完成.
*200:处理完成.
*3xx:服务器通知浏览器,服务器还需要浏览器进一步处理来完成整个操作.
*302:服务器通知浏览器需要进一步操作,从http响应头(location)获得进一步操作的资源.
*304:服务器通知浏览器当前资源没有修改,从缓存中获取.
*4xx:服务器通知浏览器,浏览器发送数据有误.
*400 Bad Request :客户端请求有语法错误,不能被服务器所理解.
*401 Unauthorized:没有权限.
*403 Forbidden:服务器收到请求,但是拒绝提供服务.
*404 Not Found:找不到资源.
*5xx:服务器通知浏览器,服务器出现异常.
*500 Internal Server Error:服务器异常.
*503 Server Unavailable:服务器未响应.
2.响应头: 可以称为消息头,主要用于描述服务器的基本信息,以及数据的描述,
服务器通过这些数据的描述信息,可以通知客户端如何处理等一会它回送的数据.
3.响应体:服务器响应浏览器的所有的内容.与响应体之间要有一个空行.