显示WEB页面的过程
打开一个页面的过程以及整个过程会使用哪些协议?
一般分为六个步骤:
1.DNS解析 2.TCP连接 3.发送HTTP请求
4.服务器处理请求并返回HTTP报文 5.浏览器解析渲染页面 6.连接结束
各种协议与HTTP解析之间的关系
Cookie与Session的异同点
session和cookie都是会话(Session)跟踪技术。
cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。
session的实现依赖于cookie, sessionId(session的唯一标识需要存放在客户端)。
cookie数据存放在客户的浏览器上,session数据放在服务器上。
cookie不是很安全,别人可以分析存放在本地的cookie进行cookie欺骗,考虑到安全应当使用session。
session会在一定时间内保存在服务器上,当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
HTTP状态码
状态码的类别
2XX 成功
200 OK
204 No Content
206 Partial Content
3XX 重定向
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
307 Temporary Redirect
4XX 客户端错误
400 Bad Request:该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。
401 Unauthorized:该状态码表示发送的请求需要有通过 HTTP 认证(BASIC 认证、DIGEST 认证)的认证信息。
403 Forbidden:该状态码表明对请求资源的访问被服务器拒绝了。
404 Not Found:该状态码表明服务器上无法找到请求的资源。
5XX 服务器错误
500 Internal Server Error:该状态码表明服务器端在执行请求时发生了错误。
503 Service Unavailable:该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。
HTTP请求方法
两种常用的请求方法:GET和POST
在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
- GET - 从指定的资源请求数据
- POST - 向指定的资源提交要被处理的数据
比较GET与POST
GET | POST | |
---|---|---|
后退按钮/刷新 | 无害 | 数据会被重新提交(浏览器应该告知用户数据会被重新提交) |
书签 | 可收藏为书签 | 不可收藏为书签 |
历史 | 参数保留在浏览器历史中 | 参数不会保存在浏览器历史中 |
对数据长度的限制 | 当发送数据时,GET 方法向 URL 添加数据,URL 的长度是受限制的(URL 的最大长度是 2048 个字符) | 无限制 |
对数据类型的限制 | 只允许 ASCII 字符 | 没有限制 |
安全性 | 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分 | POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中 |
可见性 | 数据在 URL 中对所有人都是可见的 | 数据不会显示在 URL 中 |
其他 HTTP 请求方法
下面的表格列出了其他一些 HTTP 请求方法:
方法 | 描述 |
---|---|
HEAD | 与 GET 相同,但只返回 HTTP 报头,不返回文档主体 |
PUT | 上传指定的 URI 表示 |
OPTIONS | 返回服务器支持的 HTTP 方法 |
CONNECT | 把请求连接转换到透明的 TCP/IP 通道 |
URI与URL的区别是什么?
URI 是 Uniform Resource Identifier 的缩写。(统一资源标识符):可以唯一标识一个数据
URL使 Uniform Resource Locator 的缩写。(统一资源定位符):可以提供该资源的路径
HTTP与HTTPS的区别是什么?
HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用SSL(Secure Socket Layer)和 TLS(Transport Layer Security)协议代替而已。HTTPS 是身披 SSL 外壳的 HTTP。
1.端口:HTTP的URL由“http://”起始且默认端口为80,而HTTPS的URL由“https://”起始且默认端口为443。
2.安全性和耗费资源:HTTP通信使用明文(不加密),内容可能会被窃听、不验证通信方的身份,因此有可能遭遇伪装、无法证明报文的完整性,所以有可能已遭篡改。HTTPS传输内容都经过加密,所以安全性比HTTP高,但HTTPS更加耗费资源。