网络相关概念笔记

cookie vs  session

摘自: Cookie/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

参考:OSI七层与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)

时间: 2025-01-04 06:42:17

网络相关概念笔记的相关文章

网络基础笔记——OSI七层模型

OSI七层模型 由于整个网络连接的过程相当复杂,包括硬件.软件数据封包与应用程序的互相链接等等.如果想要写一支将联网全部功能都串连在一块的程序,那么当某个小环节出现问题时,整只程序都需要改写.所以我们将整个网络分成数层,每层都有自己独立的功能,而且每层的代码都可以独立撰写,因为相互之间不会干扰.如此一来,当某个小环节出现问题时,只要将该层的代码改写即可.并且这样可以让整个网络层次更加的清晰. 在网络上传输信息就像是一个发包裹的过程,从己方的应用程序开始往第七层的包裹里塞数据,再依次塞到第一层的包

linux网络编程笔记——TCP

1.TCP和UDP TCP是长连接像持续的打电话,UDP是短消息更像是发短信.TCP需要消耗相对较多的资源,但是传输质量有保障,UDP本身是不会考虑传输质量的问题. 2.网络传输内容 我习惯的做法是直接通过TCP传送结构体,当然前提是收发两端都在程序里对目标结构体有充分的定义.特别说明的一点是,要小心收发两端处理器的大小端问题!而且传输信息头里必须包含长度信息,而且通用的是大端.但是,这里的长度和结构体,我选择用小端进行传输. 3.TCPserver实现 参考了别人多线程的回调写法,看起来不错.

Django开发BBS---51网络课程笔记(目录)

这是51cto中bbs课程中的一个项目,这里写一下每节的目录: Django开发BBS---51网络课程笔记(1) 这部分主要介绍了数据库的搭建及站点管理 http://4440271.blog.51cto.com/4430271/1663863 Bootstrap开发 这不分主要讲前端的设计 http://4440271.blog.51cto.com/4430271/1663934 Django开发BBS---51网络课程笔记(2) 这部分主要讲view与前端的衔接部分 http://4440

linux网络编程笔记——UDP

目前这部分代码会出现阻塞问题,暂时尚未解决 #include "udp.h" #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <errno.h> #include <malloc.h> #include <sys/types.h> #include <sys/socket

Winsock网络编程笔记(4)----基本的理论知识

前面的笔记记录了Winsock的入门编程,领略了Winsock编程的乐趣..但这并不能算是掌握了Winsock,加深理论知识的理解才会让后续学习更加得心应手..因此,这篇笔记将记录一些有关Winsock的基本理论知识,由于是一篇笔记,鉴于看书速度有限,主要内容会慢慢地填入..错误在所难免的,希望看客更正..(*^__^*) 嘻嘻…… Winsock网络编程笔记(4)----基本的理论知识,布布扣,bubuko.com

Java网络编程笔记5

在Java网络编程笔记4中我们看到了客户端与服务器通信的过程,只是在前面的程序只是单个客户端与服务器通信 的例子. 接下来我们看如何实现多个客户端与服务器通信,对于服务器来说,它要为每个客户端请求的Socket建立一个线程,并通过它进行通信. 在这里创建一个线程类用来管理Socket: <span style="font-size:18px;">public class ServerThread extends Thread { private Socket socket;

Winsock网络编程笔记(3)----基于UDP的server和client

在上一篇随笔中,对Winsock中基于tcp面向连接的Server和Client通信进行了说明,但是,Winsock中,Server和Client间还可以通过无连接通信,也就是采用UDP协议.. 因此,这一篇随笔也简单的列举基于UDP的Server和Client的实现.. 和基于TCP的实现相比,其主要的不同点包括: ①接收端(简单地说就是服务器)/发送端(简单地说就是客户端)在创建Socket时候,参数要选择SOCK_DGRAM, IPPROTO_UDP: ②接收端不需要调用listen和ac

Winsock 网络编程笔记(1)----入门

今天第一次接触winsock网络编程,看的资料是Windows网络编程第二版.通过博客记住自己的看书笔记.. 在这里贴出第一个程序,虽然程序什么都没做,但以此作为入门,熟悉其网络编程风格.. 1 #include"winsock2.h" 2 #include<iostream> 3 using namespace std; 4 //This line is very important 5 6 #pragma comment(lib,"ws2_32.lib&quo

Python网络爬虫笔记(五):下载、分析京东P20销售数据

(一)  分析网页 下载下面这个链接的销售数据 https://item.jd.com/6733026.html#comment 1.      翻页的时候,谷歌F12的Network页签可以看到下面的请求. 从Preview页签可以看出,这个请求是获取评论信息的 2.      对比第一页.第二页.第三页-请求URL的区别 可以发现 page=0.page=1,0和1指的应该是页数. 第一页的 request url:没有这个rid=0& . 第二.三页-的request url:多了这个ri