Http相关
2021-02-03 08:13
标签:http 不同的 smtp SSL加密 tcp连接 主机 灵活 控制 证书 一、http请求过程 域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户 二、http请求特点 HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。 1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。 2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。 3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 三、http请求组成 http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式, http请求由三部分组成,分别是:请求行、请求头、空格、请求体 HTTP响应也是由三个部分组成,分别是:状态行、响应头、空格、响应体 post请求 http请求报文----------------------------------------------------------------------------------------------------------------- ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST, ③是协议名称及版本号。 http响应报文------------------------------------------------------------------------------------------------------------------------------------- ①报文协议及版本; 四、http响应状态码 请求错误(4开头) 服务器错误(5开头) 302:重定向 200:请求成功 400:bad request 语义有误,当前请求无法被服务器理解 403:forbidden拒绝 401:没有权限 404:路径错误,所请求的资源在服务器上没有 500:服务器处理了,没法给响应,最终处理不了(可能线程死锁) 502:网关超时 503:服务器处理超时 504:DNS解析超时 五、Get请求和Post请求(区别) Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认 为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。 但最常用的是GET和POST,称为GET请求和POST请求,如在浏览器中输入www.sina.com进入新浪网,将发出GET请求;提交邮箱注册信息,将发出POST请求等等,GET请求和POST请求比较如下: 1)、通常Get用来从服务器上获得数据,而Post用来向服务器提交递数据 2)、Get请求时,请求的数据是追加到URL后面,因此为显示在浏览器地址栏中,也称为显示提交;以?分割URL和传输数据,参数之间以&相连,如:login.action?name=hyddd& password=idontknow&verify=%E4%BD%A0%E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以 16进制表示的ASCII。 而Post请求时,请求的数据是放在HTTP请求体中,因此不会显示在浏览器地址栏中,也称为隐式提交;所以,在提交一些比较重要的数据时,强烈建议使用Post请求,如登录网银、提交注册信息等等 3)、Get传输的数据量小,这主要是因为受URL长度限制;1024字节,而Post可以传输大量的数据,理论上POST没有限制,所以在上传文件时只能使用Post,Post传输的数据大小限制在服务器中可以配置 4)、POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存,(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。 六、http和https的区别 HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容请看SSL。 HTTP协议是一种使用明文数据传输的网络协议。HTTP协议的明文传输会让用户存在一个非常大的安全隐患。试想一下,假如你在一个HTTP协议的网站上面购物,你需要在页面上输入你的银行卡号和密码,然后你把数据提交到服务器实现购买。假如这个适合,你的传输数据被第三者给截获了,由于HTTP明文数据传输的原因,你的银行卡号和密码,将会被这个截获人所得到。 HTTPS协议可以理解为HTTP协议的升级,就是在HTTP的基础上增加了数据加密。在数据进行传输之前,对数据进行加密,然后再发送到服务器。这样,就算数据被第三者所截获,但是由于数据是加密的,所以你的个人信息让然是安全的。这就是HTTP和HTTPS的最大区别。 当你使用Chrome浏览器访问一个HTTP网站的时候,你会发现浏览器会对该HTTP网站显示“不安全”的安全警告,提示用户当前所访问的网站可能会存在风险。 而假如你访问的是一个HTTPS网站时,情况却是完全不一样。你会发现浏览器的地址栏会变成绿色,企业名称会展示在地址栏中,地址栏上面还会出现一把“安全锁”的图标。这些都会给与用户很大的视觉上的安全体验。 http协议和https协议的区别:传输信息安全性不同、连接方式不同、端口不同、证书申请方式不同 1)、传输信息安全性不同 1、http协议:是超文本传输协议,信息是明文传输。如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。 2、https协议:是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。 2)、连接方式不同 1、http协议:http的连接很简单,是无状态的。 2、https协议:是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议。 3)、端口不同 1、http协议:使用的端口是80。 2、https协议:使用的端口是443. 七、tcp/ip协议 协议就是计算机之间通过网络实现通信时事先达成的一种“约定”;这种“约定”使计算机之间,只要遵循相同的协议就可以实现通信 协议可以分很多种,每一种协议都明确界定了它的行为规范:2台计算机之间必须能够支持相同的协议,并且遵循相同的协议进行处理,才能实现相互通信 TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议 TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中 TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。 传输层:在此层中,它提供了节点间的数据传送,应用程序之间的通信服务,主要功能是数据格式化、数据确认和丢失重传等。如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。 网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。 网络接口层或数据链路层:接收IP数据报并进行传输,从网络上接收物理帧,抽取IP数据报转交给下一层,对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。 ip层接收底层接口发来的数据包发送到tcp层或udp层,ip层也可以把从tcp或udp层接收的数据包传到底层接口。ip数据包包含发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。 八、TCP 和UDP的区别 TCP/IP的运输层有两个不同的协议: (1) 用户数据报协议 UDP (User Datagram Protocol) (2) 传输控制协议 TCP (Transmission Control Protocol) 传输层控制着那些将要进入网络层的数据 TCP和UDP的区别 • 面向连接的服务 – 先建立连接再传输数据,之后再断开连接 – 数据传输过程中,数据包不需要携带目的地址 – 保证数据传输的可靠性 • 无连接的服务 – 不需要事先建立连接,直接发送数据 – 每个报文都带有完整的目的地址 – 不保证报文传输的可靠性,可能会丢包 tcp是面向连接的,先建立连接再传输数据,之后再断开连接,udp是无连接的服务,不需要事先建立连接,直接发送数据 tcp会确认包的到达,顺序是好的,udp不确认包的到达,可能会出现丢包,顺序也可能会乱, tcp稳定可靠、相对比较慢 udp不稳定,但是相对快,实时性高 Http相关 标签:http 不同的 smtp SSL加密 tcp连接 主机 灵活 控制 证书 原文地址:https://www.cnblogs.com/lxm666/p/13162131.html
5、支持B/S及C/S模式。
②为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL,
④是HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。
⑤是报文体,它将一个页面表单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1¶m2=value2”的方式传递请求参数。
②状态码及状态描述;
③响应报文头,也是由多个属性组成;
④响应报文体,即我们真正要的“干货”。