网络相关概念笔记
http 和 HTTPS的区别
HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。
HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
区别如下:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
cookie vs session
常用的会话跟踪技术是cookie与session。
1. cookie通过在客户端记录信息确定用户身份,session通过在服务器端记录信息确定用户身份。
2. cookie
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。
cookie对象使用key-value属性对的形式保存用户状态,一个cookie对象保存一个key-value对,一个request或者response同时使用多个cookie。
cookie具有不可跨域名性。也就是访问Google只会携带Google的cookie,而不会携带baidu的cookie。同理,Google也只能操作Google的cookie。
限制:cookie功能需要浏览器的支持。如果浏览器不支持cookie或者把cookie禁止了,cookie功能就会失效。
3. session
session是服务器端使用的一种记录客户端状态的机制,使用上比cookie简单一些,相应的也增加了服务器的存储压力。
客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上。这就是session。客户端浏览器再次访问时只需要从该session中查找该客户的状态就可以了。
URI vs URL vs URN
URI,uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
URL,uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。类似于住址,它告诉你一种寻找目标的方式。比如: http://bitpoetry.io/posts/hello.html
URN,uniform resource name,统一资源命名,是通过名字来标识资源。类似于书籍的ISBN码。尽管没有告诉你用什么方式或者到什么地方去找目标,但是你有足够的信息来检索到它。比如:bitpoetry.io/posts/hello.html#intro
也就是说,URI是以一种抽象的,高层次概念定义统一资源标识,而URL和URN则是具体的资源标识的方式。URL和URN都是一种URI。
HTTP 1.0 vs HTTP 1.1
HTTP 1.0: 浏览器的每次请求都要求建立一次单独的连接,在处理完每一次的请求后,就自动释放连接。
HTTP 1.1: 可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。
TCP/IP
关于TCP/IP的学习,找到一个超级好的学习博客集合:TCP/IP详解学习笔记
应用层
协议:Telnet 、FTP 、SMTP、SNMP、 DNS 、HTTP
传输层
协议: TCP 、UDP、UGP
网络层
协议:网际协议IP、地址解析协议ARP、网际控制消息协议ICMP、互联组管理协议IGMP
设备:三层交换机、路由器
链路层
协议:ARP、RARP、 PPP、MTU
设备:网卡、网桥、二层交换机
物理层
设备:中继器(repeater)、集线器(hub)
返回码
返回码是一个3位数,第一位定义的返回码的类别,总共有5个类别,它们是:
- 1xx: Informational - Request received, continuing process - 2xx: Success - The action was successfully received, understood, and accepted - 3xx: Redirection - Further action must be taken in order to complete the request - 4xx: Client Error - The request contains bad syntax or cannot be fulfilled - 5xx: Server Error - The server failed to fulfill an apparently valid request