学习笔记-http协议
1.http介绍http超文本运输协议是一种应用层协议他定义了web客户机是如何向web服务器请求web页面以及服务器如何将web页面传送给客户机的。他是基于 TCPHTTP/3 基于 UDP的结构化请求 - 响应协议用于在客户端与服务器之间传输任意类型的资源HTML、图片、JSON、视频等。2.http格式我们来看一下http基本格式请求方GET /index.html HTTP/1.1 # 请求行方法 路径URL 版本 Host: localhost:8080 # 请求头键值对传递元信息 User-Agent: Mozilla/5.0 Connection: keep-alive #http/1.0只有close无keep-alive #空行必需由于http不要求请求头行数所以需要一行空行来区分请求头和请求体 # 请求体GET请求可以无体POST请求可传表单/JSON数据请求行HTTP报文的第一行HTTP 的 “核心指令”包含三个关键信息1.方法请求的操作类型常用 GET查询资源、POST提交资源、PUT更新资源、DELETE删除资源2.路径URL:要访问的地址比如www.baidu.com3.版本HTTP 协议版本如HTTP/1.1。请求头以键: 值格式存在的元信息补充请求的上下文常用字段1.Host:目标服务器的域名 端口HTTP/1.1 强制必传支持虚拟主机2.User-Agent: 客户端身份标识浏览器 / 程序类型、操作系统等3.Connection:连接策略keep-alive长连接/close短连接4.请求体可选用于传递数据如 POST 请求的表单数据、JSON 参数GET 请求通过 URL 查询参数keyvalue传递数据无请求体。响应方HTTP/1.1 200 OK # 状态行版本 状态码 描述 Content-Type: text/html; charsetutf-8 # 响应头 Content-Length: 1024\r\n Connection: keep-alive\r\n # 空行必需 htmlbodyHello HTTP!/body/html # 响应体实际返回的资源1.状态行重点是状态码200 OK表示访问成功404 Not Found表示没有找到资源403 Forbidden表示访问被拒绝405 Method Not Allowed表示访问的服务器不能支持请求中的方法或者不能使用该请求中的方法500 Internal Server Error表示服务器出现内部错误504 Gateway Timeout表示当前服务器负载比较大服务器处理单条请求的时耗很长就会出现超时情况302 Move temporarily表示临时重定向301 Moved Permanently:表示永久重定向当浏览器收到这种响应时后续的请求都会被自动改成新的地址3.http请求1.URL:我们来看一下URL格式组件示例内容是否可选核心作用协议SchemeHTTP必选规定客户端与服务器的通信协议如 HTTP、HTTPS、FTP、SSH 等决定数据传输规则认证信息Userinfouser:pass可选早期用于服务器身份验证用户名密码现在几乎不用安全风险高已被 HTTPSCookie 替代域名Hostwww.sogou.com必选资源所在服务器的地址标识可是域名或 IP 地址如127.0.0.1端口Port8080可选服务器上的服务端口号与协议绑定默认值如 HTTP 默认 80、HTTPS 默认 443路径Path/article/details/123必选服务器内具体资源的路径类似文件系统的目录 文件名查询参数Queryspm1001page2可选向服务器传递的附加参数格式为键等于值多参数用分隔片段标识Fragmentcomment可选定位资源内部的子部分如网页的锚点、文档的章节仅客户端解析不传给服务器我们来看一个例子https://mp.csdn.net/mp_blog/creation/editor?spm1001.2100.3001.4503这里协议是https,域名是mp.csdn.net路径是/mp_blog/creation/editor查询参数是spm1001.2100.3001.45032.cookie:Cookie 是 HTTP 协议中用于维持客户端与服务器会话状态的小型文本数据由服务器生成并通过响应头发送给客户端客户端如浏览器会将其存储在本地后续每次向该服务器发送请求时都会自动携带 Cookie从而让服务器识别用户身份、记录状态信息。cookie的存储与携带存储形式键值对keyvalue的文本数据单个 Cookie 大小通常限制在 4KB 左右不同浏览器略有差异。客户端存储cookie浏览器接收响应后将 Cookie 存储在本地按域名分类管理例如我们打开edge浏览器在页面上方网络地址的左侧小锁里就能查看在本地存储的Cookie,携带规则客户端仅向生成 Cookie 的服务器域名、路径发送遵循「同源策略」默认Cookie解决的核心问题HTTP无状态的缺陷HTTP 协议本身是「无状态」的 —— 服务器不会记住前后两次请求是否来自同一个客户端比如第一次登录成功后第二次请求服务器仍不知道 “你已登录”。Cookie 正是为了弥补这一缺陷而设计让服务器能通过客户端携带的 Cookie 识别用户身份、维持会话状态。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2488541.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!