预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Http协议:超文本传输协议 浏览器与服务端之间传输数据的协议,底层的传输协议为TCP。 Http则为应用层协议,负责定义传输数据的格式 HTTP协议分为1.0与1.1两个版本。现在常用为1.1版本。 协议规定客户端与服务端通讯方式为:一次请求一次响应,即:客户端 发起请求,服务端接收到请求后向客户端发送响应。服务端不会主动发送内容 给客户端。采取“一问一答”的形式 HTTP 请求和响应分别定义了个格式。并且,无论是请求还是响应中发送的字符(不含正文部分内容)都只能符合ISO8859-1编码字符(如:数字,字母,符号). 像中文等其它字符都需要经过处理后才可以发送。 HTTP请求格式: 一个HTTP请求分为三部分组成:请求行,消息头,消息正文 1:<请求行> 请求行分为三部分: 请求方法 资源路径协议(CRLF) method(请求方法)url(资源路径)protocol(CRLF) 例如: GET/index.htmlHTTP/1.1(CRLF) 请求行以CRLF结束(回车加换行) CR:回车符,asc编码中对应数字13 LF:换行符,asc编码中对应数字10 2.<消息头> 消息头由若干行表示,每行表示一个具体的头信息,每个头信息式 分为两部分: 消息头名字:消息头的值(CRLF) name:value(CRLF) 每个消息头都以CRLF结尾。 最后一个消息头结尾处会有两个CRLF,第一个表示最后一个消息头结束, 第二个表示消息头(整个)部分结束。 例如: Host:www.localhost:8080(CRLF) Connection:keep-alive(CRLF) Cache-Control:max-age=0(CRLF) Upgrade-Insecure-Requests:1(CRLF) User-Agent:Mozilla/5.0(X11;Linuxx86_64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/58.0.3029.110Safari/537.36(CRLF) Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8(CRLF) Accept-Encoding:gzip,deflate,sdch,br(CRLF) Accept-Language:zh-CN,zh;q=0.8(CRLF)(CRLF) 3.<消息正文> 正文部分不是必须部分,消息正文是2进制数据。是客户端在发送请求时发送给服务端客户提交的数据。这些数据可能是注册信息,上传的图片等。具体数据是什么类型以及这些2进制数据有多少字节会在消息头中具体说明。若消息头中没有说明消息正文内容则这个请求中是不含有正文的。 下面是浏览器发送给服务端的一个请求(不含有正文部分) GET/HTTP/1.1 Host:www.localhost:8080 Connection:keep-alive Cache-Control:max-age=0 Upgrade-Insecure-Requests:1 User-Agent:Mozilla/5.0(X11;Linuxx86_64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/58.0.3029.110Safari/537.36 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip,deflate,sdch,br Accept-Language:zh-CN,zh;q=0.8 <HTTP响应> HTTP响应格式也分为三个部分:状态行,响应头,响应正文 1.<状态行格式>:(三部分) protocolstatus-codestatus-reason 协议版本状态码状态描述 2.<响应头> 响应头的格式与请求的消息头格式一致。 3.<响应正文> 响应正文也是二进制数据,用于将客户端请求的资源等信息发送给 客户端。该正文具体表示的介质类型以及占用的字节长度会在响应 头中有所描述 一个HTTP响应大致内容: HTTP/1.1200OK(CRLF)---响应的状态行 Content-Type:text/html(CRLF)---响应头 Content-length:224586((CRLF)(CRLF))--响应头 1101010101001.....2进制字节数据。 状态代码有5类: 1xx:信息响应类,表示接收到请求并继续处理 2xx: