HTTP权威指南学习笔记

一直以为学习前端只需要掌握js语法、html语法、css就够了,确实没有想到还需要很多知识点,今天来细细学习HTTP。


一个HTTP请求由4部分组成:

  • HTTP请求方法或动作
  • 正在请求的URL
  • 一个可选的请求头集合,其中可能包含身份验证信息
  • 一个可选的请求主体

服务器返回的HTTP相应包含3部分:

-一个数字和文字组成的状态码,用来显示请求的成功和失败
-一个响应头集合
-响应主体

一、Web服务器

最常用的Web服务器是Apache和Microsoft的Internet信息服务器(Internet Information Services,IIS)。
应用层使用HTTP协议。
HTML(标准通用标记语言下的一个应用)文档格式。
浏览器统一资源定位器(URL)。

工作原理

这里写图片描述
1.建立连接——接收一个客户端连接。
2.接收请求——从网络中读取一条HTTP请求报文。
3.处理请求——对请求报文进行解释,并采取行动。
4.访问资源——访问报文中指定的资源。
5.构建响应——创建带有正确首部的HTTP响应报文。
6.发送响应——将响应回送给客户端。
7.记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中。

二、web缓存

Web缓存的原理,以HTTP GET报文为例,如下图:

这里写图片描述
1.接收——缓存从网络中读取抵达的请求报文
2.解析——缓存对报文进行解析,提取出URL和各种首部
3.查询——缓存查看本地是否有副本可用,如果没有,就获取一份副本
4.新鲜度检测——缓存查看已缓存副本是否足够新鲜,如果不是,就询问服务器是否有任何更新
5.创建响应——缓存会有新的首部和已缓存的主体来构建一条响应报文
6.发送——缓存通过网络将响应发回客户端
7.日志——缓存可选的创建一个日志文件条目来描述这个事务

三、用户登录与Cookie

用户登录过程

这里写图片描述
该图中,表明了一个用户登录的过程:
1.客户端(浏览器)对站点www.jos-hardware.com发起请求
2.站点不知道这个用户的身份,因此返回401 Login Required HTTP响应码,并添加到www-Authentication首部,要求用户登录(为了不让用户每次发送请求都要登录一次,大多数浏览器都会记住某站点的登录信息,并将登录信息放在发送给该站点的每条请求中)
3.只要用户输入了用户名与密码,浏览器就会重复原来的请求,这次它会田间一个Authorization首部。
4.服务器知道用户的身份了
5.今后的请求要用到用户名和密码时,浏览器会自动将存储的值发送出去,甚至站点不要求登录信息也会发送。也就是说以后每次请求,浏览器都自动为请求添加Authorization首部。登录一次,就能维持整个会话期间的用户身份。

cookie原理

cookie是识别当前用户,实现持久会话的最好方式
cookie分为

  • 会话cookie
    • 记录了用户访问站点时的设置和偏好,用户退出浏览器,就删除了
  • 持久cookie
    • 存储在硬盘上,用户退出浏览器,计算机重启持久cookie都在

两者的区别实质上就在于有没有设置Discard参数,或者Expires、Max-Age参数来说明扩展过期时间。

cookie的工作流程

这里写图片描述
1.用户首次访问服务器,Web服务器对用户一无所知,要求用户再次回来,给用户贴上一个标签cookie id=“34394”
2.当用户再次访问服务器的时候,服务器可以用这个id去查找该用户积累的数据库信息(购物历史、地址信息)
3.cookie并不限于ID号,很多Web服务器的信息都将直接保存在cookie中,浏览器会记住从服务器返回的Set-Cookie或Set-Cookie2首部中的cookie内容,并将cookie集存储在cookie数据库中。

一个例子
Amazon用会话cookie跟踪用户
1.浏览器首次请求Amazon.com页面
2.浏览器将用户重定向到一个电子商务软件的URL上
3.客户端对重定向的URL发起请求
4.服务器在响应时贴上两个会话cookie,并将用户重定向到另一个URL,这样客户端就会用这些附加的cookie再次发起请求。这个新的URL是一个胖URL(有些状态嵌入到URL中了)。如果客户端禁止了cookie,只要用户一直跟随Amazon的胖URL,不离开网站,仍然可以实现一些基本的标识功能
5.客户端请求新的URL,但现在会传送两个附加的cookie
6.服务器重定向到home.html,并附加另外两个cookie
7.客户端获取home.html页面并将所有四个cookie都发送出去
8.服务器回送内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值