HTTP下午茶

匿名 (未验证) 提交于 2019-12-03 00:18:01

参考:https://www.kancloud.cn/kancloud/tealeaf-http/43837

目标:理解http协议和web应用,基于python搭建服务器

浏览器充当一个客户端与服务器交互的接口 包括CSS、HTML、Javascript、视频图片等,都是通过传输协议如http从服务器传输到客户端,从而在浏览器中显示 HTTP,即超文本传输协议,用以连接应用程序和超文本文档的传输,定义了一种规则,规定请求和响应的消息格式 互联网,网络连接设备,互联网协议(即IP协议)标志每一个设备或服务器,端口区分交互目标 域名解析系统(即DNS)处理URL和IP之间的对应关系,它是一个分布式的数据库 交互过程:输入网址 -> 网络接口 -> DNS解析 -> 服务器接收请求 -> 服务器响应 -> 浏览器呈现结果 
[Scheme]://[host:port][path][?query] Scheme:URL模式,定义web客户端访问资源的方式 host:资源路径或主机,描述资源的确切位置 port:监听请求的端口号,默认端口是80 path:URL路径,定义客户端请求服务器的什么资源 query:查询字符串,格式为key=value,用&连接 URL编码:默认只接受ASCII码,%转义,/?:&保留字 
浏览器插件:Chrome Postman、REST HTTP API Client HTTP GUI:PAW、HTTP Client、Fiddler、Cocoa Rest Client HTTP命令行:Curl 
浏览器:在地址栏输入网址,浏览器处理响应并进行展示 HTTP工具:返回原始相应数据 审查器(Inspector):查看HTTP请求和响应 发起请求:curl -X GET "http://www.reddit.com/" -m 30 -v Method:HTTP请求方法,最常见的为GET和POST Status:请求的响应状态码 GET请求:超链接或浏览器地址栏访问,用于取得资源 POST请求:提交表单,更大或敏感数据 HTTP头部:允许C/S在请求/响应的HTTP周期内发送额外信息 请求头部:     Host:服务器域名     Accept-Language:可接受的语言     User-Agent:标志客户端的字符串     Connection:连接类型 
状态码:服务器接收请求后返回的标志     200 OK:请求正在被处理     302 Found:资源重定向到另一个URL     404 Not Found:资源无法找到     500 Internal Server Error:服务器出错 响应头部:     Content-Encoding:数据编码类型     Server:服务器名称     Location:重定向地址     Content-Type:响应数据类型 
HTTP协议是无状态的,即服务器不保留客户端信息,每次请求都是全新的 WEB应用是有状态的,客户端会维持用户登录状态等 会话session:在客户端和服务器之间建立一个有状态的连接     会话标志符:token,即一串数     在客户端保持无状态等HTTP协议,服务器响应数据分配token,客户端发送请求携带token     必须检查每个请求是否包含token,检查会话id确保未过期,基于会话id取出数据并处理响应 Cookies:一个请求/响应周期内,服务器发送,存储在客户端的一段数据,包含会话信息     首次访问,request没有cookie,response会通过set-cookie添加cookie数据 AJAX(异步Javascript和XML):允许浏览器发送请求/处理响应时不用刷新整个页面     每个操作都会触发一个AJAX请求,通过回调来处理请求的响应 
安全的HTTP(HTTPS):请求和响应在发送前都会被加密(TLS协议)     加密协议首先使用证书与远程服务器通信交换安全密钥 同源策略(Same-origin policy):允许来自同一站点的资源互相访问     同源要求相同的协议、主机名和端口号     同源策略限制访问的是文件内容即资源,而非链接如URL 跨域资源共享(CORS):与许绕过同源策略,请求另一个域名的资源     添加新的HTTP头部,对一些域名的资源访问进行授权 会话劫持(Session Hijacking):攻击者获取用户的会话id     重置会话:验证旧的会话id并生成一个新的会话id     设置会话的过期时间     整站使用HTTPS协议 跨站脚本攻击(XSS):不处理用户输入,导致HTML和Javascript注入到网页中被执行     消除有问题的输入,或使用更安全的输入格式     对用户输入数据进行转义 
文章来源: HTTP下午茶
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!