HTTP基础

1.·URL和uri,前者是统一资源定位符,就是地址,uri则是统一资源标识符,是由某个协议方案表示的资源定位符 协议方案例如http ftp等
2.HTTP定义了客户端怎样向服务器请求文档以及服务器如何将文档返回
3.Http使用TCP链接,每个服务器有个监听进程,监听TCP的80端口,一旦有浏览器发出建立连接的请求则响应并建立连接,浏览器给定访问的url,服务器返回资源,释放连接,其中请求和响应交互遵循的就是http协议
4.Http请求是一个ASCII码串,响应的是个类MIME格式,http本身是无连接的,即请求之前不用先建立连接,
5.从浏览器请求到收到文档需要的时间是文档传输时间+2RTT时间,5要经历tcp三次握手,发送第三个报文(客户端给服务端发送确认时)请求路径会放在数据段中,然后服务端会将文件返回
HTTP基础
6.HTTP1.1协议采用持续连接的方式,浏览器和服务器建立连接后,只要没有一端明确提出断开连接,该TCP连接会再存在一段时间,可以处理该客户机后续发来的http请求,而且这种持续连接不仅仅局限于某一个页面,只要是同一服务器即刻。减少了tcp连接的时间的一个rtt,提高服务器反映能力
7.HTTP1.1持续连接有两种方式,非流水线方式客户收到响应以后才能接着发请求,流水线(管线化)是请求并行发送,响应也是并行,相当于所有对象只需要一个rtt即可,提高网络连接利用率
8.代理服务器,将客户机访问过的资源缓存到本地或者局域网服务器上,客户再次请求先在代理服务器上找,如果没有代理服务器去请求源服务器,然后复制一份到自己盘上,然后响应给客户机
9HTTP报文结构
请求报文,请求行(请求方法,路径),首部行(浏览器版本,tcp connection是否释放,可以无,sessionid,accept客户端可以识别的类型等),实体主体(一般无)
响应报文 包括响应行(Http版本 状态码 解释语),首部行(返回的一些文本类型,服务器信息),实体主体(传输响应的内容)
HTTP无状态,即不保存上一个请求的任何信息,但是有时候需要保存信息,比如跳转时保存登录状态,用cookie解决,响应的报文首部数据中有set cookie,这个让客户端保存sid,之后的请求都携带cookie到服务器,服务器用sid识别是哪个客户端的信息进行匹配
10.MIME多用途互联网邮件扩展,作用是发送多种数据对象的集合,比如邮件中添加附件,HTTP1.1中也才采用了多部分对象集合multipart,可以报告多种类型实体
11.首部字段Range设置请求范围,可以指定请求范围,解决上次传送一半的问题 eg:content-Range bytes5000-10000/10000
12.代理服务器可以有多个,基本功能就是转发响应和请求,不改变url,通过设置代理服务器,可以限制某些url不通过,代理有缓存代理,透明代理(不对报文做处理)
13HTTP/1.1和1.0的区别主要是1.1可以用于保持持续连接,而1.0是短暂连接
14.Http首部字段分为四种
General header(通用首部,请求和响应都会有),请求首部 响应首部 Entity header实体首部
15.请求的首部字段Accept指定客户端请求的数据类型
Host字段必须存在,这是客户端告诉服务器所请求的资源的主机
Range指定请求的资源的字节范围,若请求回范围的资源无法处理,则直接返回200状态码和所有资源
16.Referer是告诉服务器请求发出的原始来源
17.Http不对报文加密,tcp通信本身有被窃听的风险,Http和SSL(安全套接层)组成https其实是组成了安全通道,,另外一种方式就是发送之前对报文内容加密,HTTP对请求方和响应方都不进行身份验证,任何请求都会回应
18.SSL也会提供第三方证书,用于验证客户端和服务器都是真实存在的,该证书伪造难度大,,另外http也无法对报文做完整性保护,因为tcp传输过程中对报文内容不进行识别,在传输中有被篡改的可能性
19.Http+加密+内容完整性保护+证书等于HTTPS在HTTPS通信时,相当于应用层在和tcp通信之前,先和SSL通信了
HTTP基础
20.Https由于比http多了加密解密运算,证书认证等步骤,总体网络负载增高,通信速度下降很多,对cup消耗也增幅,另外证书需要购买,一般只在涉及隐私的web上用https,普通的访问就用http
21.对于web应用来说,只要服务器端调用一次getSession()就会为当前的会话创建session,并且之后的HTTP请求都会自动带上session字段,这与浏览器的cookie机制有关。