HTTP协议学习笔记

【协议】:一式双份/多分的双方/多方都要遵守的规范(协议使得所有的计算机得以互通)

1客户端向服务器端发送请求,请求建立连接
2服务器端处理请求
3服务器端沿连接返回响应
4响应完成后断开连接,一次完整的请求完成
如图:
在这里插入图片描述

客户端通过URL(统一资源定位符,在服务器中各个资源文件的位置)地址来访问服务器端

URL结构:网络协议://主机地址:端口号/资源文件名

http协议流程:
在这里插入图片描述
HTTP协议请求
在这里插入图片描述
1【请求方法中GET和HEAD基本一致,只是不返回具体内容。常用于确认某数据是否存在或状态是否正常,而不返回具体数据内容。请求方法注意大写】
2【请求协议由http协议规定,故web服务器未必都支持(get post head一般都支持】

HTTP协议响应

在这里插入图片描述

浏览器可以发送HTTP协议,但并非只有浏览器可以发送HTTP协议。只要满足此协议,任意工具都可以发送(默认情况下http指向80端口)
例1:使用Telnet发送协议(get方法)
在这里插入图片描述

例2:使用Telnet发送协议(post方法)
在这里插入图片描述

HTTP协议 (Hyper Text Transfer Protocol)超文本传输协议
HTTP是一个基于TCP/IP通信协议来传递数据,包括html文件、图像、结果等,即是一个客户端和服务器端请求和应答的标准。
HTTP协议特点
1.http无连接:限制每次连接只处理一个请求,服务端完成客户端的请求后,即断开连接。(传输速度快,减少不必要的连接,但也意味着每一次访问都要建立一次连接,效率降低)
2.http无状态:对于事务处理没有记忆能力。每一次请求都是独立的,不记录客户端任何行为。(优点解放服务器,但可能每次请求会传输大量重复的内容信息)
3.客户端/服务端模型:客户端支持web浏览器或其他任何客户端,服务器通常是apache(阿帕奇)或者iis等
4.简单快速灵活:可以传输任何类型的数据
HTTP协议请求方法详解
GET
发送请求来获得服务器上的资源,请求体中不会包含请求数据,请求数据放在协议头中。另外get支持快取、缓存、可保留书签等。幂等
POST
向服务器提交资源让服务器处理,比如提交表单、上传文件等,可能导致建立新的资源或者对原有资源的修改。提交的资源放在请求体中。不支持快取。非幂等
HEAD
本质和get一样,但是响应中没有呈现数据,而是http的头信息,主要用来检查资源或超链接的有效性或是否可以可达、检查网页是否被串改或更新,获取头信息等,特别适用在有限的速度和带宽下。
PUT
和post类似向服务器提交资源,html表单不支持,发送资源与服务器,并存储在服务器指定位置,要求客户端事先知道该位置;比如post是在一个集合上(/province),而put是具体某一个资源上(/province/123)。所以put是安全的,无论请求多少次,都是在123上更改,而post可能请求几次创建了几次资源。幂等。
DELETE
请求服务器删除某资源。和put都具有破坏性,可能被防火墙拦截。如果是https协议,则无需担心。幂等

CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。就是把服务器作为跳板,去访问其他网页然后把数据返回回来,连接成功后,就可以正常的get、post了。
OPTIONS
获取http服务器支持的http请求方法【但有时OPTIONS本身都不被支持,就非常尴尬】,允许客户端查看服务器的性能,比如ajax跨域时的预检等。
TRACE
回显服务器收到的请求,主要用于测试或诊断。一般禁用,防止被恶意攻击或盗取篡改信息。

HTTP协议状态文字状态码
状态码 用于反映服务器响应状况
状态文字 用于描述状态码便于观察
在这里插入图片描述
其中1xx,主要用于http本身日后拓展使用(不重要)

HTTP协议常用状态码
200 OK 请求成功。一般用于GET与POST请求
301 Moved Permanently 永久重定向
302 Found 临时重定向

307 Temporary Redirect 临时重定向。与302类似。使用GET请求重定向【使得重定向中保持原有的请求数据,防止数据丢失】
304 Not Modified 未修改的【当显示304时可以直接读取缓存,不必直接读取服务器,减轻了服务器的压力】
失败时状态码
404 Not Found 服务器无法根据客户端的请求找到资源(网页)
500 Internal Server Error 服务器内部错误,无法完成请求
503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求

HTTP请求实例:
在这里插入图片描述
HTTP响应实例:
在这里插入图片描述

HTTP头字段
头域由一个域名,冒号(:)和域值三部分组成(即键值对key:value)。

1通用头:是客户端和服务器都可以使用的头部(可用于请求也可用于响应),可以在客户端、服务器和其他应用程序之间提供一些非常有用的通用功能,如Date头部。
2请求头:是请求报文特有的,它们为服务器提供了一些额外信息,比如客户端希望接收什么类型的数据,如Accept头部。
3响应头:便于客户端提供信息,比如,客服端在与哪种类型的服务器进行交互,如Server头部。
4实体头:指的是用于应对实体主体部分的头部(用于定义被传送资料的信息,也可用于请求响应),比如,可以用实体头部来说明实体主体部分的数据类型,如Content-Type头部。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值