关于http(s)协议的学习理解

  • http协议是超文本传输协议,常用于BS(Browser Service)架构中,为数据在网络传输中规定协议。http是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
  • 主要特点:
  1. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求的方法有GET、POST、HEAD等,由于http服务器的程序规模比较小,因而通信速度非常快。
  2. 灵活:http允许传输任意类型的数据对象,正在传输的类型由content-type加以标记。
  3. 无连接:无连接的含义是限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
  4. 支持B/S和C/S模式。

  • http包括请求报文、响应报文。请求报文是指浏览器会将前端请求封装成请求报文发送给后端,请求报文中包括请求行、请求头、请求体。响应报文是指服务器接收到前端发来的请求,会将相应内容封装成为一个响应报文,浏览器会对响应报文进行解析,进而显示出来。其中响应报文包括响应行、响应头、响应体。
  • 请求报文
  1. 请求行:包括请求方法和http协议版本,用来说明请求类型和要访问的资源。
  2. 请求头:紧接着请求行之后的部分,用来说明服务器要使用的附加信息
  3. 请求体:用来存放主要的数据内容
  • 响应报文
  1. 响应行:由http协议的版本号、状态码、状态消息三部分组成
  2. 响应头:用来说明客户端要使用的一些附加信息,比如日期时间等等。
  3. 响应体:也叫做响应正文,主要是服务器返回给客户端的文本信息。
  • http请求响应步骤
  1. 客户端连接到web服务器(服务器的http端口默认是80)
  2. 发送http请求(请求报文工作)
  3. 服务器接受请求并返回http响应(响应报文工作)
  4. 释放连接

       若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求

5.客户端浏览器解析html内容

  • http状态码:

1xx:指示信息--表示请求已经接收,继续处理

2xx:成功--表示请求已经被成功接收、理解、接受

3xx:重定向--要完成请求必须进行更进一步的操作

  

4xx:客户端错误--请求有语法错误或请求无法实现

5xx:服务器端错误--服务器未能实现合法的请求

常见的状态码:

  • GET和POST请求的区别
  1. GET提交,请求的数据会在地址栏中显示,附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接;例 如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0,是指把用户的姓名信息传送给后台。而POST提交则不会在地址中显示,保密性、安全性更高。
  • http与url

     URL:统一资源定位符,是互联网用来标识某一处资源的地址。http使用url来传输数据和建立来连接。

以一个完整的url整体为例,来介绍url各部分组成

http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name

协议部分:代表网页使用的是http协议,在Internet中可以使用多种协议,如HTTP,FTP等等本例中使用的是HTTP协议。在"HTTP"后面的“//”为分隔符

2.域名部分:该URL的域名部分为“www.aspxfans.com”。一个URL中,也可以使用IP地址作为域名使用

3.端口部分:跟在域名后面的是端口,域名和端口之间使用“:”作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口

4.虚拟目录部分:从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分。本例中的虚拟目录是“/news/”

5.文件名部分:从域名后的最后一个“/”开始到“?”为止,是文件名部分,如果没有“?”,则是从域名后的最后一个“/”开始到“#”为止,是文件部分,如果没有“?”和“#”,那么从域名后的最后一个“/”开始到结束,都是文件名部分。本例中的文件名是“index.asp”。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名

6.锚部分:从“#”开始到最后,都是锚部分。本例中的锚部分是“name”。锚部分也不是一个URL必须的部分

7.参数部分:从“?”开始到“#”为止之间的部分为参数部分,又称搜索部分、查询部分。本例中的参数部分为“boardID=5&ID=24618&page=1”。参数可以允许有多个参数,参数与参数之间用“&”作为分隔符

https

  由于http存在通信使用明文,不加密,内容可能会被窃听;不验证通信方的身份,可能遭遇被炸骗;无法证明报文的完整性,可能已经被篡改内容。所以https(http+SSL安全套接层/TLS安全传输协议)使得通信内容加密,更加的安全。

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值