什么是http

http是一种协议

协议:互联网中电脑和电脑之间进行的通信的规范和规定。

网络中的七层架构

物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

TCP协议中的三次握手和四次挥手

HTTP协议是什么

超文本传输协议。(HTTP,HyperText Transfer Protocol)

服务器和浏览器之间通信的一种协议,主要用传输wwwweb中的各种数据(html文档,图片,视频等) https 端口:443

http协议是一种无状态协议.

数据一次通信,我们叫做一次事务,本次事务处理会记住上次的事务数据信息(有状态)

无状态:每次数据请求都是一次独立的数据请求,后面发送的数据处理,并不能记忆上次的数据处理信息。

http协议现在使用的全是1.1协议(长链接)

http0.9 http.10:(短链接) 请求同一块数据时(视频,图片),数据每请求一点就要断开一次(以为一次请求已经结束)

http1.1:(长链接) 请求同一块数据时,数据不会断开链接,会留有一部分的超时时间(缺省时间),如果浏览器不再发送其他要求,本次链接才断开。否则继续通信。

 

HTTP协议操作

GET:请求服务器资源(图片),比如超链接 http://www.baidu.com/1.jpg (url资源定位符)

POST:将表单或者其他的数据,提交服务器中。 HEADER 请求数据,重点不是返回某些服务器返回的数据,而是获取和设置各种请求和响应信息。

PUT: 获取服务器中的某个特定的文件资源。

DELETE: 删除服务器中的某些固定数据

options.....

请求

浏览器向服务器发送的所有请求信息

请求行: 告诉服务器请求的基本是什么: 格式: Method resource protocal 三者之间必须有空格 GET /2016129/Http/getserver.html HTTP/1.1 方法和协议必须大写

请求头信息 头信息参数名:参数值

Accept:请求的文件类型 大类型/小类型(多媒体类型、MIME码类型)

Image/jpeg */*: 请求服务器返回的数据可以是任何类型数据。

Accept-Encoding:请求的文档类型(编码),文件的压缩方式(Gzip/zip )

Accept-Language:请求的语言Zh-CN: 中文

Connetion: 链接后的状态 Keep-Alive: 保持链接

Close: 数据请求并接受数据后直接关闭

HOST: 服务器名

User-Agent: 请求用户的信息,系统,浏览器等.

Referer: 来源地址 上一次请求的地址

请求体信息:浏览器端向服务器端发送的请求数据 可选,用于携带与请求相关联的数据,例如可以存一些请求需要的参数等。由消息头中的 Content-Length 或 Transfer-Encoding 来指示。消息头里的 Content-Type 说明了数据的传输类型。

 

响应

状态行 格式: 协议名/版本号 状态 信息 HTTP/1.1 200 OK

方法和协议必须大写

HTTP协议状态:5大类

1xx 指示信息--->表示请求已被接收,继续处理

2xx 成功---表示请求已经被成功接收、理解、返回数据 200: 发送和成功接收

3xx 重定向---表示要完成请求必须进行更进一步的操作 302:是资源在本页面没有找到,去其他地方寻找 Header(“location:地址”); 原来的网站改版了,但是原有的seo权重无法迁移到新网站,可以使用302直接做页面跳转到新网站,可以将权重导入到新网站中

304:如果发送了一个GET请求,服务器允许,但是内容没有改 变时,服务器返回的状态。

主要和浏览器的缓存有关系的: Expires: -1:设置过期时间,永远过期,意思就是不缓存, Mon, 13 Jun 2016 05:36:37 GMT星期,天 月 年 小时:分钟:秒 GMT

Cache-Control: No-cache不缓存

Max-age: 最大过期时间

Private设置浏览器是否缓存 如果指定cache-control的值为private、no-cache、must-revalidate,Max-age:0那么打开新窗口访问时都会重新访问服务器。

Pragma: no-cache设置是否缓存 If-Modified-Since:Thu, 14 Apr 2016 07:13:41 GMT设置最新更新时间

Etags: 内容是否改变的标示 If_none_match: 内容是否改变

4xx 客户端错误---请求由语法错误或请求错误 404:NOT FOUND 403:FORBIDDEN

5xx 服务器端错误---服务器端未能实现合法的请求 500 502 504 505

 

COOKIE 头部操作:Cookie:也是请求和响应头部信息

Header(“Set-Cookie:testcookie=value;path=/;domain=www.baidu.com;expires=".gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT",time()+9600));

setCookie(“变量名”,数据,有效期[,作用目录,作用域名]);查看响应头中: Set-Cookie

响应的主体信息:就是用户请求要得到的数据内容(可以省略)

posted on 2017-11-01 12:19  顾君临  阅读(92)  评论(0)    收藏  举报