1、谈谈对http的理解
- 首先用户端与服务器需要建立连接。
- 建立连接后,用户端发送一个请求给服务器
- 服务器接到请求后,给予相应的响应信息
- 用户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后用户端与服务器断开连接
- HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议
2、http 与https 的区别
- https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443
- http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
3、http 的请求
3.1、HTTP请求方法
根据HTTP标准,HTTP请求可以使用多种请求方法。
HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。
- GET 请求指定的页面信息,并返回实体主体。
- HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
- POST 向指定资源提交数据进行处理请求。POST请求可能会导致新的资源的建立和/或已有资源的修改。
- PUT 从客户端向服务器传送的数据取代指定的文档的内容。
- DELETE 请求服务器删除指定的页面。
- CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
- OPTIONS 允许客户端查看服务器的性能。
- TRACE 回显服务器收到的请求,主要用于测试或诊断
3.2 、响应
HTTP之状态码:
状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
- 1xx:指示信息--表示请求已接收,继续处理
- 2xx:成功--表示请求已被成功接收、理解、接受
- 3xx:重定向--要完成请求必须进行更进一步的操作
- 4xx:客户端错误--请求有语法错误或请求无法实现
- 5xx:服务器端错误--服务器未能实现合法的请求
3.3、常用的状态码
- 200 OK //客户端请求成功
- 301 Moved Permanently //永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替
- 302 Found // 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI
- 303 See Other //查看其它地址。与301类似。使用GET和POST请求查看
- 304 Not Modified //未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源
- 305 Use Proxy //使用代理。所请求的资源必须通过代理访问
- 400 Bad Request //客户端请求有语法错误,不能被服务器所理解
- 401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
- 403 Forbidden //服务器收到请求,但是拒绝提供服务
- 404 Not Found //请求资源不存在,eg:输入了错误的URL
- 500 Internal Server Error //服务器发生不可预期的错误
4、一个页面从url敲如地址到页面显示的全过程
- 浏览器地址栏输入url
- 浏览器会先查看浏览器缓存--系统缓存--路由缓存,如有存在缓存,就直接显示。如果没有,接着第三步
- 域名解析(DNS)获取相应的ip
- 浏览器向服务器发起tcp ( 传输控制协议 ) 连接,与浏览器建立tcp三次握手
- 握手成功,浏览器向服务器发送http请求,请求数据包
- 服务器请求数据,将数据返回到浏览器
- 浏览器接收响应,读取页面内容,解析html源码,生成DOm树
- 解析css样式、浏览器渲染,js交互
- 请求页面中需要的js脚本和图片或者样式表
网友评论