HTTP协议

HTTP协议是主机和万维网服务器的通信协议。

HTTP是无状态的,这样可以简化服务器的设计。

HTTP 0.9

HTTP1.0版本默认是非持续连接,它的缺点在于一个TCP连接只能进行一次HTTP请求。但是一个浏览器可以一次性打开多个TCP连接。Chrome是6个。

HTTP1.1默认是持续连接:一个TCP连接可以用于多次HTTP请求。

HTTP1.1的持续连接有两种工作方式:1、非流水线方式:客户在收到前一个响应后才能进行下一个请求。2、流水线方式:客户可以不断发送HTTP请求报文。

代理服务器:代理服务器是一种网络实体,又称为万维网高速缓存。

代理服务器把最近的HTTP请求和响应存在本地磁盘中,当新请求到达时,若代理服务器发现这个请求与暂时存放的请求相同,就返回暂存的响应。而不需要按URL的地址再次去因特网访问该资源。代理服务器可以在客户端和服务端工作,也可以在中间系统工作。

代理服务器的作用:降低时延。

1、校园网中PC去因特网服务器请求服务时,先与校园网的代理服务器建立连接。并向代理服务器发出HTTP请求报文。

2、若代理服务器已经存放了所请求的对象,代理服务器直接返回给客户机。

3、否则,代理服务器就代表客户机向因特网上的服务器建立连接(类似DNS的递归查询),因特网服务器把请求内容返回给代理服务器,,代理服务器收到内容后,先存在本地,然后再返回给客户机。

HTTP报文格式:

每一行以CR LF结尾,而且首部行和实体主体之间也有一个CR LF回车换行。

回车”(Carriage Return)和“换行”(Line Feed)起源

请求方法:

get:请求指定的页面信息

post:提交数据,提交表单或者文件

head:类似于get,但是只获取报头信息

options:请求一些选项信息

put:对指定资源位置进行更新

patch:对指定资源进行局部更新

delete:删除指定位置的资源

trace:回显服务器收到的请求,用于测试和诊断

connect:用于代理服务器

首部行

Connection: keep-alive表示持续连接

状态码:

1:服务器已收到请求、正在处理

2:表示成功

3:重定向 301永久转移 302暂时转移

4:客户端错误(请求中有错误的语法404 url不存在)

5: 服务端错误

Cookie和Session

服务器给客户机传输cookie是通过Set-cookie这个首部行实现的。

服务器的响应报文是Set-cookie:id_cookie = 1234(这个值应该就是session id 把)

浏览器接收后把它存在本地,当它再次访问该网站时:请求报文的首部行就是cookie:1234

Cookie和Session能够让服务器记住用户,常实现的功能有:记住帐户密码、购物车

HTTP头域分为四种:通用头域、请求头域、响应头域和实体头域。每个头域由一个域名、冒号和域值三部分组成,域名大小写无关,域值前可以添加任何数量的空格符。
通用头域

通用头域是指请求和响应都支持的HTTP头域,最常见的有Cache-Control、Connection和Transfer-Encoding,具体含义如下:
(1) Cache-Control:指定请求和相应遵循的缓存机制,最常见的值是no-cache,指示请求和响应消息不能缓存;
(2) Connection:用于指定处理完本次请求/响应后,客户端和服务器是否还要继续保持连接。
(3) Transfer-Encoding:用于指定实体内容的传输编码方式。

请求头域
请求头域是只有在请求头中带有的,用于向服务器传递关于请求或者关于客户端的附件信息。常见的有:Accept、Accept-Encoding、Accept-Language、Accept-Charset、Host、Referer、User-Agent和Cookie,具体含义如下:
(1) Accept: 用于指定客户端程序能够处理的MIME类型,多个时用逗号隔开;
(2) Accept-Encoding:指定客户端程序支持的压缩方式;
(3) Accept-Language: 指定客户端期望返回哪个国家语言的文档;
(4) Accept-Charset:指定客户端程序可以使用的字符集;
(5) Host:指定资源所在的主机名和端口号;
(6) Referer:指定请求uri的源资源地址,也就是用户从哪个uri过来,允许服务器生成回退链表;
(7) User-Agent:浏览器客户端信息,如使用哪种浏览器等;
(8) Cookie:服务器在浏览器端留下的信息,这是最重要的请求头字段之一。

实体头域
HTTP请求和响应中都可以包含实体头域,实体头域包含实体内容的一些信息。常见的实体头域有:Content-Encoding、Content-Length、Content-Type和Expires,具体含义如下:
(1) Content-Encoding:指明实体内容采用的压缩方式;
(2) Content-Length:指明实体内容的长度,单位为字节;
(3) Content-Type:指定实体内容的MIME类型;
(4) Expires:指明实体内容在什么时间之后过期,不再缓存。
因此,由Content-Length头域标明后续的实体内容的字节长度,浏览器或者服务器根据解析出来的Content-Length去读取后续的实体内容。以此来判断是否传输完数据
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值