HTTP协议详解

HTTP协议详解

  1. 什么是http协议

http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议
1.支持客户/服务器模式。
2.简单快速:
客户向服务器请求服务时,只需传送请求方法和路径。
3.灵活:
HTTP允许传输任意类型的数据对象。
4.无连接:
无连接的含义是限制每次连接只处理一个请求。
服务器处理完客户的请求,并收到客户的应答后,即断开连接。
采用这种方式可以节省传输时间。
5.无状态:
无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。

  1. HTTP组成部分

http请求由三部分组成,分别是:请求行、消息报头、请求正文

  1. HTTP协议的规范

    HTTP请求的包: 
    GET的请求的参数在请求头中 POST的请求参数在请求体中
    		请求行:请求方式 空格 url空格协议版本 回车符 换行符
    
    		请求头:请求头参数 Cookie
    
    		空白行: 分割的
    
    		请求体:
    
    HTTP响应的包:
    	   状态行:协议版本 空格 状态码 空格 状态码的描述 回车符 换行符
    
    	   响应头:响应的参数 
    	   Content-Type:返回数据类型 告诉浏览器怎么解析
    	   application/json; charset=utf-8
    	   text/html;charset=utf-8
    	   image/webp
    
    	   空白行:分割的
    
    	   响应体:响应的数据
    
  2. HTTP之状态码

200 OK
客户端请求成功
301
永久重定向,该状态码表示请求的资源已被分配了新的URL, 以后应使用资源现在所指的URL
302 Found
临时性重定向。 该状态码表示请求的资源已被分配了新的URL, 希望用户(本次) 能使用新的URL访问。
400 Bad Request
客户端请求有语法错误,不能被服务器所理解
401 Unauthorized
请求未经授权
403 Forbidden
服务器收到请求,但是拒绝提供服务
404 Not Found
请求资源不存在
500 Internal Server Error
服务器发生不可预期的错误
503 Server Unavailable
服务器当前不能处理客户端的请求,一段时间后可能恢复正常。
  1. HTTP请求方法

GET:获取数据
  		POST:新增数据

  		PUT:更新数据
  		DELETE:删除数据

  		OPTIONS:询问	
  1. TCP/IP协议族分层

TCP/IP协议族是由一个四层协议组成的系统,这四层分别为:应用层、传输层、网络层和数据链路层。

网络四层:应用层:HTTP协议

		 传输层:TCP和UDP

		 网络层: IP协议

		 数据链路层 :驱动的协议

  1. URI和URL


 1.简介
 http使用统一资源标识符(Uniform Resource Identifiers, URI)来传输数据和建立连接。URL是一种特殊类型的URI,包含了用于查找某个资源的足够的信息URL,全称是UniformResourceLocator,中文叫统一资源定位符,是互联网上用来标识某一处资源的地址

 2. URI和URL的区别

URI,是uniform resource identifier,统一资源标识符,用来唯一的标识一个资源。
URL,是uniform resource locator,统一资源定位器

 3. 组成
 以下面这个URL为例,介绍下普通URL的各部分组成:

https://blog.csdn.net/u014294681/article/details/85333095

从上面的URL可以看出,一个完整的URL包括以下几部分:

1. 协议部分:该URL的协议部分为"https:",这代表网页使用的是https协议,在"https"后面的"//"为分隔符。
2. 域名部分:该URL的域名部分为"blog.csdn.net"。一个URL中,也可以使用IP地址作为域名使用。
3. 端口部分:跟在域名后面的是端口,域名和端口之间使用":"作为分隔符。端口不是一个URL必须的部分,如果省略端口部分,将采用默认端口。默认http的端口号为80,https的端口号为443。
4. 虚拟目录部分:从域名后的第一个"/"开始到最后一个"/"为止,是虚拟目录部分。虚拟目录也不是一个URL必须的部分,上述URL的虚拟目录为"u014294681/article/details/"。
5. 文件名部分:从域名后的最后一个"/"开始到"?"为止,是文件名部分,如果没有"?",则是从域名后的最后一个"/"开始到"#"为止,是文件部分,如果没有"?"和"#",那么从域名后的最后一个"/"开始到结束,都是文件名部分。本例中的文件名是"85333095"。文件名部分也不是一个URL必须的部分,如果省略该部分,则使用默认的文件名。
6. 锚部分:从"#"开始到最后,都是锚部分,锚部分也不是一个URL必须的部分。
7. 参数部分:从"?"开始到"#"为止之间的部分为参数部分,又称搜索部分、查询部分。参数可以允许有多个参数,参数与参数之间用"&"作为分隔符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值