我是靠谱客的博主 过时小鸽子,最近开发中收集的这篇文章主要介绍URL& http协议&https协议&get与post请求,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1.URL

2.HTTP协议简介

3.get与post的区别

4.http和https的区别


1.URL

        URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL。

URL的基本格式:协议://主机地址/路径

URL中常用的协议:

        1)HTTP:超文本传输协议,访问的是远程的网络资源,格式是http://

        2)file协议的是本地计算机上的资源,格式是file://(不用加主机地址)

        3)mailto:访问的是电子邮件地址,格式是mailto:

        4)FTP:访问的是共享主机的文件资源,格式是ftp://

2.HTTP协议简介

        1)HTTP是超文本传输协议:规定客户端和服务器之间的数据传输格式,让客户端和服务端能有效地进行数据沟通。

        2)特点:简单快速;灵活:HTTP允许传输任意类型的数据;HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开来凝结,方式可以节省传输时间。

        3)HTTP通信的步骤:

               1.请求:客户端向服务器索要数据

               2.响应:服务器返回客户端响应的数据

        4)HTTP协议报文格式:

                1.HTTP请求报文格式:

                  (1)请求行:包含了请求方法、请求资源路径、HTTP协议版本

GET /LDServer/resources/images/1.jpg HTTP/1.1

从请求行中得到的信息:1>发送的是GET请求,2>服务器名称:LDServer,3>资源路径:resources/images/1.jpg  4>协议的版本:1.1

                 (2)请求头:包含了对客户端的环境描述、客户端请求的主机地址等信息

Host: 192.168.1.105:8080 // 客户端想访问的服务器主机地址

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9) Firefox/30.0   // 客户端的类型,客户端的软件环境

        Intel Mac OS X 10.9:表示我是用的Mac电脑

        Mozilla/5.0,Firefox/30.0:表示我是实用的是火狐浏览器

Accept: text/html, */*     // 客户端所能接收的数据类型,txt和html格式的文件;而*/*表示所有文件都能接收

Accept-Language: zh-cn     // 客户端的语言环境:中文

Accept-Encoding: gzip     // 客户端支持的数据压缩格式

              (3)请求体:客户端发给服务器的具体数据,比如文件数据

           2.HTTP响应报文格式:

               (1)状态行:包含了HTTP协议版本、状态码、状态英文名称

               (2)响应头:包含了对服务器的描述、对返回数据的描述

Server: Apache-Coyote/1.1         // 服务器的类型

Content-Type: image/jpeg         // 返回数据的类型

Content-Length: 56811         // 返回数据的长度

Date: Mon, 23 Jun 2015 12:54:52 GMT    // 响应的时间

              (3)实体内容:服务器返回给客户端的具体数据。

3.get与post的区别

        1)get:在URL的后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开。

                       比如: http://ww.test.com/login?username=123&pwd=234&type=JSON

              post:发给服务器的参数全部放在请求体中

        2)get 请求在 url 中传递的参数是有长度限制的(由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB。),而 post 没有。

        3)get 产生一个 TCP 数据包; post 产生两个 TCP 数据包

                对于 get 方式的请求,浏览器会把 http 的 header 和 data 一并发送出去,服务器响应200(返回数据)。

                而对于 post,浏览器先发送 header,服务器响应100 continue,浏览器再发送 data,服务器响应200 ok(返回数据)

4.http和https的区别

        1)https协议需要到CA申请证书,一般免费证书较少,因而需要一定费用。

CA证书的申请及其使用过程:有非对称加密和对称加密(CA认证)

        (1)非对称加密:客户端和服务端均拥有一个公有密匙和一个私有密匙。公有密匙可以对外暴露,而私有密匙只有自己可见。

         缺点:1. 中间人会将客户端的公匙替换成自己的;中间人会截取客户端发来的消息。

             2.非对称加密的性能相对对称加密来说会慢上几倍甚至几百倍,比较消耗系统资源。

        (2)数字证书与数字签名

                1、服务器拥有自己的私钥与公钥

                2、服务器将公钥交给CA认证机构,请求给予一份数字证书

                3、CA认证机构生成数字证书,并颁发给服务器

                4、服务器将带有公钥信息的数字证书发给客户端

                5、进入客户端生成对称密钥再进行对接的过程

             

        2)http是超文本传输协议,信息是明文传输,https则是具有安全性的SSL/TLS加密传输协议。

       SSL(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。

        TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。该协议由两层组成:TLS记录协议和TLS握手协议。TLS是HTTP与TCP协议之间的一层,通常TLS发生在TCP三次握手之后,此时进行TLS四次握手,然后再进行HTTP通信

    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

    4、http的连接很简单,是无状态的;HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

最后

以上就是过时小鸽子为你收集整理的URL& http协议&https协议&get与post请求的全部内容,希望文章能够帮你解决URL& http协议&https协议&get与post请求所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部