HTTP(超文本传输协议),是一个应用层协议。
URL
平时我们俗称的 “网址” 其实就是说的 URL。
HTTP
HTTP响应格式
HTTP请求
内容是可以为空的。请求方法一般为Get/Post方法,url为请求的资源路径,HTTP版本一般为1.0/1.1,1.0为短连接,1.1为长连接,是现在主流的HTTP版本。
HTTP响应
响应的内容可以是视频、音频、html、css、js网页等。
HTTP的方法
虽然方法很多,但是最常用的就是Get和Post方法。
GET vs POST
- GET使用向服务器传参使用url,而POST使用请求正文传参。
- url传参有字节的限制,而请求正文传参没有字节的限制。
- GET的私密性差一些,POST相对好一点,但是都不安全。
HTTP的状态码
最常见的状态码, 比如 200(OK), 404(Not Found), 403(Forbidden), 302(Redirect, 重定向), 504(Bad Gateway)。
HTTP常见的header
- Content-Type: 数据类型(text/html等)
- Content-Length: Body的长度
- Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
- User-Agent: 声明用户的操作系统和浏览器版本信息;
- referer: 当前页面是从哪个页面跳转过来的;
- location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
- Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能;
Cookie和Session
HTTP是无连接,无状态的,因此一般来说在用户进行登录了一个页面之后,下次在访问时还需要登录,这对用户的使用来说比较麻烦,因此就有了Cookie,可以还保存用户的登录信息,方便用户的使用。也就是进行会话管理,但是这样吧用户的登录信息明文保存在Cookie中,如果被黑客盗取就会造成用户信息的泄露,因此在保存信息时不回直接把用户提交的账号和密码直接明文保存在Cookie中,而是在用户提交之后,会在服务器维护一个Session状态,然后根据用户提交的信息通过数据摘要形成唯一的Session id,然后在客户端保存Session id, 这样就算黑客盗走了Cokkie中的内容,也是经过数据摘要后的,虽然这样黑客也可以拿着Session id进行登录,但是我们服务器端要是检测到登录的地区发生了变化,直接让Session id失效就可以了,这样就需要重新通过密码进行登录。