Linux_HTTP

ARP:地址解析协议,用来将IP地址转换为MAC地址。
MAC(Media Access Control,介质访问控制)地址:或称为MAC位址、硬件地址,用来定义网络设备的位置

DNS:域名解析协议,是用来将域名转换为IP地(也可以将IP地址转换为相应的域名地址)
DNS工作方式:递归式、迭代式

域名:URL -  字符串 “www.baidu.com”
IP地址:IP -  整型值 "168.168.168.255"
IP地址是面向主机的,而域名则是面向用户的,IP地址是固定长度的,IPv4是32位,IPv6是128位,而域名是变长的,不便于计算机处理,IP地址对于用户来说不方便记忆,但域名便于用户使用,

HTTP:超文本传输协议,规定浏览器请求web服务器的数据格式和web服务器应答数据的格式,端口号为80,HTTP以明文的发送方式,不进行任何的加密。是一个不安全的协议。
HTTP特点:支持客户/服务器模式
                    简单快速,客户向服务器请求服务时,只需传送请求方法和路径
                    灵活,允许传输任意类型的数据对象
                    无连接,限制每次链接只处理一个请求,服务器处理客户请求并收到客户回应后,立即断开链接
                    无状态,对处理事务没有记忆力
                    HTTP服务的短连接:通讯一次建立一次链接,数据传递完成,即关闭连接

HTTP的连接方式:
短连接:Web客户端和Web服务器之间的一个TCP连接只能为一个HTTP请求服务,当处理完客户的一个HTTP请求之后,Web服务器就(主动)将TCP连接断开
长连接:多个HTTP请求可以使用同一个TCP连接,长连接在编程上稍微复杂一些,但性能上却有很大提高

HTTP常用发请求方式:

HTTP请求报文段:浏览器发送给web服务器的 

 第一行是请求行:GET:请求方法,表示客户端以只读的方式来申请资源,http://www.baidu.com/index.html:是目标资源的URL(统一资源定位符,指定组员的位置以及用于访问它的协议),http:获取目标资源需要使用的应用层协议,www.baidu.com:指定资源所在的目标域名,index.html:指定资源文件的名,HTTP/1.0:客户端使用的HTTP的版本号
第二行表示客户端使用的程序:Wget
第三行表示的是目标主机名:www.baidu.com,http协议规定http请求中必须包含的头部字段就在目标主机名。
第四行表示wget命令请求完成后的处理:告诉服务器处理完这个请求就关闭连接,
另外在所有字段之后,http请求必须包含一个空行,以标识头部字段的结束。
在空行之后,HTTP请求可包含可选的消息体,消息体中要包含该信息体长度的字段

 

HTTP应答状态码:

HTTP应答报文段:web服务器发送给浏览器的

第一行是状态行:HTTP/1.0:服务器使用的HTTP协议的版本号,通常与客户端使用版本一样。200 OK:是状态码和状态信息
第二行表示服务器的应用程序:
第三行表示目标大小:8024字节
第四行表示目示文档的类型:text是主文档类型,html 是子文档类。text/html表示目示文档index.html是text类型中的html文档。charset是text文档类型的一个参数,用于指定文档的字符编码。
第五行表示表示服务器传送了一个Cookie给客户端:其中,BAIDUID指定Cookie的名字,expires指定cookie的生存时间,path指定该cookie生效的域名和路径。
第七行表示HTTP应答在返回过程中经历过的所有代理服务器的地址和名称:
应答报文头部字段的功能类似于IP协议的记录路由功能。

HTTPS:通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。

https接收请求和响应的过程:

客户端向服务器发送请求:https://baidu.com,随后连接到server的443端口
客户端解析证书:服务端返回公钥客户端TLS验证公钥是否有效,随后生成一个随即值(秘钥),并对该随机值进行加密
传送加密信息 :将加密后的秘钥发送到服务端,客户端和服务端的通信就可以行加密解密了
服务段加密信息 :服务端用私钥解密秘钥,得到了客户端传过来的秘钥,然后把通信内容通过秘钥进行加密
传输加密后的信息 :服务端用秘钥加密后的信息,可以在客户端被还原。
客户端解密信息 :客户端用之前生成的秘钥解密服务端传过来的信息,获取内容

服务端公钥和私钥:服务端必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面,这套证书其实就是一对公钥和私钥。
传送证书 :就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名等信息。

HTTP和HTTPS的区别:
HTTPS协议需要申请ca证书,一般免费证书很少,需要交费
HTTP是超文本传输协议,信息是明文传输,HTTPS则是具有安全性的SSL加密传输协议
HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样(HTTPS端口号为443,HTTP是80)
HTTPS基于传输层,HTTP基于应用层
HTTP协议连接很简单,是无状态的
HTTPS协议是由SSL+HTTP协议构成的可进行加密传输、身份认证的网络协议     

Cookie和Session
http请求是无状态的。也就是说即使第一次和服务器连接并且登录成功后,第二次请求服务器依然不知道当前请求的用户。cookie的出现就是为了解决这个问题,第一次登录后服务器返回(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,自动把存储的cookie数据携带给服务器,服务器通过浏览器携带的数据即可判断当前用户。cookie存储的数据量有限,不同的浏览器有不同的存储大小,但一般不超过4KB。因此使用cookie只能存储一些小量的数据。

Cookie:将用户信息存储在客户端,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。
内存Cookie:由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。
硬盘Cookie:保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。按存在时间,可分为非持久Cookie和持久Cookie。

Session:将用户信息存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源。

session这个词经常跟会话绑定在一块,一次session就是一次会话。所谓的一次会话就是浏览器和服务器的一次通讯过程。从打开浏览器访问一个服务器开始,就是创建了一个session,会话就开始了,会话可以在多次请求中保存和使用数据,session的作用域是一个会话,session是一次会话,但它更是一种机制,是服务器用来记录同一个客户端的状态的机制。

会话:是指一个终端用户与交互系统进行通讯的过程。比如从输入账户密码进入操作系统到退出操作系统就是一个会话过程。TCP的三次握手就创建了一个会话,TCP关闭连接就是关闭会话。

Cookie和Session结合使用
1、存储在服务端:通过cookie存储一个session_id,然后具体的数据则是保存在session中。如果用户已经登录,则服务器会、在cookie中保存一个session_id,下次再次请求的时候,会把该session_id携带上来,服务器根据session_id在session库中获取用户的session数据。就能知道该用户到底是谁,以及之前保存的一些状态信息。这种专业术语叫做server side session。
2、将session数据加密,然后存储在cookie中,client side session。flash采用的就是这种方式,但是也可以替换成其他形式。

在浏览器中输入“www.baidu.com”发生了什么?
1、URL自动解析 ,www.baidu.com浏览器会自动转换成:HTTP://www.163.com/ 
2、DNS域名解析,由DNS服务器将域名解析成对应的服务器IP地址。
3、建立TCP链接,三次握手
4、浏览器给web服务器发送一个HTTP请求,HTTP请求报文段
5、服务器处理请求,web服务器解析用户请求,知道了需要调度哪些资源文件,再通过相应的这些资源文件处理用户请求和参数,并调用数据库信息,最后将结果通过web服务器返回给浏览器客户端。
6、服务器发回一个HTTP应答报文段/请求的数据
7、客户端处理应答,对应答报文段进行解析,分析返回的数据并显示在屏幕上
8、TCP关闭链接,四次挥手

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值